Vue:作用域

正式介紹slot前, 需要先知道一個(gè)感念: 編譯的作用域.比如父組件中有如下模板:

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

這里的 message 就是一個(gè) slot, 但是它綁定的是父組件的數(shù)據(jù),而不是組件 <child-component> 的數(shù)據(jù).
父組件模板的內(nèi)容在父組件作用域內(nèi)編譯,子組件模板的內(nèi)容是在子組件作用域內(nèi)編譯.例如下面的代碼示例:


<!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>


這里的狀態(tài) showChild 綁定的是父組件的數(shù)據(jù),如果想在子組件上綁定,那應(yīng)該是:


<!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 分發(fā)的內(nèi)容,作用域是在父組件上的.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 組件(Component)是Vue.js最核心的功能,也是整個(gè)架構(gòu)設(shè)計(jì)最精彩的地方,當(dāng)然也是最難掌握的。...
    六個(gè)周閱讀 5,775評(píng)論 0 32
  • 什么是組件? 組件 (Component) 是 Vue.js 最強(qiáng)大的功能之一。組件可以擴(kuò)展 HTML 元素,封裝...
    youins閱讀 9,708評(píng)論 0 13
  • 此文基于官方文檔,里面部分例子有改動(dòng),加上了一些自己的理解 什么是組件? 組件(Component)是 Vue.j...
    陸志均閱讀 3,949評(píng)論 5 14
  • 首先簡(jiǎn)單說(shuō)下為什么要使用作用域插槽,有時(shí)候需要組件帶有一個(gè)可從子組件獲取數(shù)據(jù)的可復(fù)用的插槽。 下面還是通過(guò)例子來(lái)講...
    清風(fēng)伴我行閱讀 1,034評(píng)論 0 0
  • Vue 實(shí)例 屬性和方法 每個(gè) Vue 實(shí)例都會(huì)代理其 data 對(duì)象里所有的屬性:var data = { a:...
    云之外閱讀 2,374評(píng)論 0 6

友情鏈接更多精彩內(nèi)容