2019-5-22 seo達(dá)人
如果您想訂閱本博客內(nèi)容,每天自動發(fā)到您的郵箱中, 請點(diǎn)這里
現(xiàn)在我有如下需求,子組件 <user /> 中此時(shí)有一條用戶的信息(userInfo);我要在父組件通過插槽展示這個(gè)用戶的姓名(userInfo.name);
注意:這里的父組件并沒有這個(gè)用戶的信息,子組件中有,如果直接在父組件{{userInfo.name}} 獲取這條信息是獲取不到的;因?yàn)?,只?<user /> 組件可以訪問到 userInfo,而我們提供的內(nèi)容是在父組件渲染的;
模板在哪寫,就是用哪里的變量,跟插槽用在哪無關(guān)
模板是在父組件中寫好,被編譯過后,傳到子組件的插槽中的
為了讓父組件的插槽內(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)在在父級作用域中,我們可以給v-slot帶一個(gè)值來定義我們提供的插槽 prop 的名字:
// 父組件
template: `
<div>
<card>
<template v-slot:default="userInfo">
用戶姓名: {{userInfo}}
</template>
</card>
</div>
`
// 輸出:
// 用戶姓名: { "userInfo": { "name": "宮鑫" } }
藍(lán)藍(lán)設(shè)計(jì)( tweetduck.com )是一家專注而深入的界面設(shè)計(jì)公司,為期望卓越的國內(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://tweetduck.com