手机国产精品一区二区,另类第一页,亚欧在线,日韩一国产极品99热在线播放69_国产美女久久精品香蕉欧美_亚州中文无码aⅤ在线_免费国产v片在线

Vue 插槽之 作用域插槽

2019-5-22    seo達(dá)人

如果您想訂閱本博客內(nèi)容,每天自動(dòng)發(fā)到您的郵箱中, 請(qǐng)點(diǎn)這里

現(xiàn)在我有如下需求,子組件 <user /> 中此時(shí)有一條用戶的信息(userInfo);我要在父組件通過(guò)插槽展示這個(gè)用戶的姓名(userInfo.name);

注意:這里的父組件并沒(méi)有這個(gè)用戶的信息,子組件中有,如果直接在父組件{{userInfo.name}} 獲取這條信息是獲取不到的;因?yàn)?,只?<user /> 組件可以訪問(wèn)到 userInfo,而我們提供的內(nèi)容是在父組件渲染的;
模板在哪寫(xiě),就是用哪里的變量,跟插槽用在哪無(wú)關(guān)
模板是在父組件中寫(xiě)好,被編譯過(guò)后,傳到子組件的插槽中的

為了讓父組件的插槽內(nèi)容可以讀取到子組件的數(shù)據(jù),我們可以將userInfo 作為一個(gè) <slot> 元素的特性綁定上去;

// 子組件
const card = {
    data() {
        return {
            userInfo: {name: '宮鑫'}
        }
    },
    template: `
    <div class='card'>
        <!-- 在插槽上綁定子組件的數(shù)據(jù) -->
        <slot :userInfo="userInfo"/>
    </div>
    `
};

綁定在 元素上的特性被稱為插槽 prop?,F(xiàn)在在父級(jí)作用域中,我們可以給v-slot帶一個(gè)值來(lái)定義我們提供的插槽 prop 的名字:

// 父組件
template: `
<div>
    <card>
        <template v-slot:default="userInfo">
            用戶姓名: {{userInfo}}
        </template>
    </card>
</div>
`

// 輸出:
// 用戶姓名: { "userInfo": { "name": "宮鑫" } }

藍(lán)藍(lán)設(shè)計(jì)www.88yangsc.com )是一家專注而深入的界面設(shè)計(jì)公司,為期望卓越的國(guó)內(nèi)外企業(yè)提供卓越的UI界面設(shè)計(jì)、BS界面設(shè)計(jì) 、 cs界面設(shè)計(jì) 、 ipad界面設(shè)計(jì) 、 包裝設(shè)計(jì) 、 圖標(biāo)定制 、 用戶體驗(yàn) 、交互設(shè)計(jì)、 網(wǎng)站建設(shè) 、平面設(shè)計(jì)服務(wù)。

分享本文至:

日歷

鏈接

個(gè)人資料

存檔