這篇文章將為大家詳細(xì)講解有關(guān)vue組件化中slot怎么用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
10余年的陽原網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。成都營銷網(wǎng)站建設(shè)的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整陽原建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。成都創(chuàng)新互聯(lián)從事“陽原網(wǎng)站設(shè)計”,“陽原網(wǎng)站推廣”以來,每個客戶項目都認(rèn)真落實執(zhí)行。前言
slot可以在子組件中開啟插槽,在父組件引用該組建時,可以定義這個插槽內(nèi)要展現(xiàn)的功能或模塊。
1.單個slot
子組件中在相應(yīng)位置寫slot標(biāo)簽,父組件在引用子組件時,在子組件標(biāo)簽內(nèi)寫要插入插槽的元素;
還可以設(shè)置slot在父組件沒有設(shè)置插槽時,子組件的插槽默認(rèn)顯示內(nèi)容;
父組件.vue
這是父組件的slot替代內(nèi)容!
子組件childComponment.vue
這是子組件childComponment!
如果父組件沒有插入內(nèi)容,我這樣可以設(shè)置默認(rèn)的顯示內(nèi)容
2.具名slot(同時使用多個插槽)
給slot指定一個名稱,可以分發(fā)多個slot插槽,但是只能有一個無名slot;
父組件的slot插槽內(nèi)容,不寫slot="xxx"的都會插到子組件的無名slot中;
如果沒有指定無名slot(默認(rèn)slot),父組件內(nèi)多余的內(nèi)容將會被拋棄。
父組件的header
父組件的footer 父組件的無名slot-1 父組件的無名slot-2
子組件
這是子組件childComponment的正常內(nèi)容!子組件默認(rèn)header-slot 子組件默認(rèn)無名slot 子組件默認(rèn)footer-slot
3.作用域插槽
{{slotProps}}
子組件
這是子組件childComponment的正常內(nèi)容!
Tips:
作用于插槽也可是具名插槽
案例:列表組件
這是作用于插槽使用最多的案例,允許組件自定義應(yīng)該如何渲染組件的每一項。
This is about page
{{myListProps.bookName}}
子組件myList.vue
This is myList page
其實上面的案例可直接在父組件中for循環(huán)就好,此處只是作為演示slot的作用域插槽;
實際開發(fā)中作用域插槽的使用場景主要為:既可以復(fù)用子組件的slot,又可以使slot內(nèi)容不一致。
4.訪問slot
vue2.0提供了$slot方法來訪問slot
此處代碼以**“具名slot(同時使用多個插槽)”**的代碼為例,修改一下子組件childComponment.vue
export default { name: "childComponment", data(){ return { message: '' } }, mounted(){ let header = this.$slots.header let main = this.$slots.default let footer = this.$slots.footer console.log(header) console.log(main) console.log(footer) console.log(footer[0].elm.innerHTML) } };
打印結(jié)果:
其中elm的內(nèi)容為插槽內(nèi)容,結(jié)構(gòu)如下:
關(guān)于“vue組件化中slot怎么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。