Vue:作用域

作者: 一叶扁舟丶 | 来源:发表于2018-10-21 21:23 被阅读6次

    正式介绍slot前, 需要先知道一个感念: 编译的作用域.比如父组件中有如下模板:

    <child-component>
        {{ message }}
    </child-component>
    

    这里的 message 就是一个 slot, 但是它绑定的是父组件的数据,而不是组件 <child-component> 的数据.
    父组件模板的内容在父组件作用域内编译,子组件模板的内容是在子组件作用域内编译.例如下面的代码示例:

    
    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <title>示例</title>
    
    </head>
    <body>
    
        <div id="app">
            <child-component v-show="showChild"></child-component>
        </div>
        
        <script src="https://unpkg.com/vue/dist/vue.min.js"></script>
    
    
        <script>
    
            Vue.component('child-component', {
                template: '<div>子组件</div>'
            });
    
            var app = new Vue({
                el: '#app',
                data: {
                    showChild: true
                }
            })
    
        </script>
    
    </body>
    </html>
    
    
    

    这里的状态 showChild 绑定的是父组件的数据,如果想在子组件上绑定,那应该是:

    
    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <title>示例</title>
    
    </head>
    <body>
    
        <div id="app">
            <child-component></child-component>
        </div>
        
        <script src="https://unpkg.com/vue/dist/vue.min.js"></script>
    
        <script>
    
            Vue.component('child-component', {
                template: '<div  v-show="showChild">子组件</div>',
                data: function () {
                    return {
                        showChild: true
                    }
                }
            });
            var app = new Vue({
                el: '#app'
            })
    
        </script>
    </body>
    </html>
    

    因此, slot 分发的内容,作用域是在父组件上的.

    相关文章

      网友评论

        本文标题:Vue:作用域

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