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

2019-07-22  本文已影响0人  缺月楼

动态组件的使用方法

VUE给我们提供 了一个元素叫component

  <!--父组件中的作用域-->
    <div id="app" style="border:2px solid green;height:400px;">
        <component :is="thisViem"></component>
        <button @click="handelViem('A')">第1句</button>
        <button @click="handelViem('B')">第2句</button>
        <button @click="handelViem('C')">第3句</button>
        <button @click="handelViem('D')">第4句</button>
    </div>

    <script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>

    <script>
        // 需求: 通过点击不同的按钮切换不同的视图
        Vue.component('compA', {
            template: `<div>床前明月光</div>`
        })
        Vue.component('compB', {
            template: `<div>疑是地上霜</div>`
        })
        Vue.component('compC', {
            template: `<div>举头望明月</div>`
        })
        Vue.component('compD', {
            template: `<div>低头思故乡</div>`
        })

        var app = new Vue({
            el: '#app',
            data: {
                // 定义默认值
                thisViem: 'compA'
            },
            methods: {
                handelViem: function(tag) {
                    // 传进来的 handelViem('A')
                    this.thisViem = 'comp' + tag
                    console.log('comp' + tag)
                }
            }
        })
    </script>
上一篇下一篇

猜你喜欢

热点阅读