Vue 插槽之 作用域插槽

2019-5-22    seo達人

如果您想訂閱本博客內容,每天自動發(fā)到您的郵箱中, 請點這里

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

注意:這里的父組件并沒有這個用戶的信息,子組件中有,如果直接在父組件{{userInfo.name}} 獲取這條信息是獲取不到的;因為,只有 <user /> 組件可以訪問到 userInfo,而我們提供的內容是在父組件渲染的;
模板在哪寫,就是用哪里的變量,跟插槽用在哪無關
模板是在父組件中寫好,被編譯過后,傳到子組件的插槽中的

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

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

綁定在 元素上的特性被稱為插槽 prop。現在在父級作用域中,我們可以給v-slot帶一個值來定義我們提供的插槽 prop 的名字:

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

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

藍藍設計www.bouu.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業(yè)提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 平面設計服務。

分享本文至:

日歷

鏈接

個人資料

藍藍設計的小編 http://www.bouu.cn

存檔