美文网首页
Vue之组件高级用法

Vue之组件高级用法

作者: wenmingxing | 来源:发表于2020-02-06 18:12 被阅读0次

1. 递归组件

组件在它的模板内可以递归地调用自己,只要给组件设置name选项即可,并且必须给一个条件来限制递归数量,否则会抛出错误。

<body>
    <div id="app">
        <child-component :count="1"></child-component>
    </div>

    <script src = "https://unpkg.com/vue/dist/vue.min.js"></script>
    <script>
        Vue.component('child-component',{
            name: 'child-component',    //设置name
            props: {
                count: {
                    type: Number,
                    default: 1
                }
            },

            template: '\
            <div class="child">\
                <child-component\
                    :count="count+1"\
                    v-if="count<3"></child-component>\
            </div>',
        });

        var app = new Vue({
            el: '#app',
        })
    </script>
</body>  

组件递归使用可以用来开发一些具有未知层级关系的独立组件,比如级联选择器和树形控件等。

2. 动态组件

Vue提供了一个特殊的元素<component>用来挂载不同的组件,使用is特性来选择要挂载的组件:

<!-- 动态组件 -->
<body>
    <div id="app">
        <component :is="currentView"></component>
        <button @click="handleChangeView('A')">Change to A</button>
        <button @click="handleChangeView('B')">Change to B</button>
        <button @click="handleChangeView('C')">Change to C</button>
    </div>

    <script src = "https://unpkg.com/vue/dist/vue.min.js"></script>
    <script>
        var app = new Vue({
            el: '#app',
            components: {
                comA: {
                    template: '<div>componentA</div>'
                },
                comB: {
                    template: '<div>componentB</div>'
                },
                comC: {
                    template: '<div>componentC</div>'
                }
            },
            data: {
                currentView: 'comA'
            },
            methods: {
                handleChangeView: function(component) {
                    this.currentView = 'com' + component;
                }
            }
        })
    </script>
</body>
执行结果

3. 内联模板 & 异步组件

参考

  1. 《Vue.js 实战》

相关文章

  • Vue之组件高级用法

    1. 递归组件 组件在它的模板内可以递归地调用自己,只要给组件设置name选项即可,并且必须给一个条件来限制递归数...

  • vue(2)

    Vue组件化开发 组件化开发的思想 组件的注册 组件间的数据交互 组件插槽的用法 Vue调试工具的用法 组件开发思...

  • Vue组件详解----高级用法

    1.动态组件 Vue.js 提供了一个特殊的元素 用来动态地挂载不同的组件, 使用is特性来...

  • vue高级进阶( 一 ) 组件精髓概述

    vue高级进阶( 一 ) 组件精髓概述 系列前言 这个系列可能会分为几部分: 基础以及高级用法总结 一些比较有代表...

  • 第七章:vue.js组件详解Ⅱ(基础篇)

    7.5高级组件用法 本节会介绍组件的一些高级用法,这些用法在实际业务中不是很常用,但在独立组件开发时可能会...

  • Vue组件的高级用法 动态组件

    动态组件的使用方法 VUE给我们提供 了一个元素叫component 作用是: 用来动态的挂载不同的组件 实现:使...

  • vue 组件高级用法实例详解

    一、递归组件 组件在它的模板内可以递归地调用自己, 只要给组件设置name 的选项就可以了。 示例如下: 渲染结果...

  • vue父子组件通信高级用法

    vue项目的一大亮点就是组件化。使用组件可以极大地提高项目中代码的复用率,减少代码量。但是使用组件最大的难点就是父...

  • vue组件传值和函数调用

    1,父组件传值给子组件 vue2.0 vue3.0(provide(提供)/inject(注入)用法) 2,父组件...

  • 【Vue】组件 - 插槽默认值

    基础知识 【Vue】组件 - 插槽的基本用法 【Vue】组件 - 多个插槽 子组件里,在 里写上默认的内容。 在父...

网友评论

      本文标题:Vue之组件高级用法

      本文链接:https://www.haomeiwen.com/subject/eahuxhtx.html