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.teruid.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ù)。
藍(lán)藍(lán)設(shè)計(jì)的小編 http://www.teruid.com