插槽solt和slot-scope

一、什么是插槽?

  • 插槽就是子組件中的提供給父組件使用的一個占位符,用<solt></solt>表示,父組件可以在這個占位符中填充任何模板代碼,如HTML、組件等,填充的內(nèi)容會替換子組件的<solt></solt>標簽。
  • 代碼

1、在子組件中放一個占位符


子組件.png

2、在父組件中給這個占位符填充內(nèi)容


父組件.png

3、展示效果


效果.png
elements.png

現(xiàn)在來看看,如果給子組件中沒有放插槽,同樣的父組件中在子組件中填充內(nèi)容,會是啥樣的:

1、子組件代碼無插槽


子組件.png

2、父組件照常填充內(nèi)容


父組件.png

3、展示的效果


效果.png

elements.png
  • 總結(jié):如果子組件中沒有使用插槽,父組件如果需要王子組件中填充模板或者HTML,是沒辦法做到的。

二、插槽的使用

(一)插槽的使用-具名插槽

  • 描述:具名插槽就是給插槽取個名字。一個子組件可以放多個插槽,而且可以放在不同的地方,而父組件填充內(nèi)容時,可以根據(jù)這個名字把內(nèi)容填充到對方插槽中。
  • 代碼

1、子組件的代碼,設(shè)置了兩個插槽(header和footer)


子組件.png

2、父組件填充內(nèi)容,父組件通過v-slot:[name]的方式指定到對應的插槽中。


父組件.png

3、展示的效果
效果.png

elements

接下來再來看看,父組件中填充內(nèi)容的時候,順序調(diào)換下,看下能不能內(nèi)容能不能對應上:

  1. 子組件代碼不變,父組件代碼中填充順序調(diào)換下(如圖,在父組件中,footer 和 header 的填充位置對換):


    父組件.png

    2、展示的效果


    展示的效果.png

    elements.png
  • 總結(jié):由此看出,即使父組件對插槽的填充的順序打亂,只要名字對應上了,就可以正確渲染到對應的插槽中。即: 父組件填充內(nèi)容時,是可以根據(jù)這個名字把內(nèi)容填充到對應插槽中的

    (二)插槽的使用-默認插槽

  • 描述:默認插槽就是指沒有名字的插槽,子組件未定義的名字的插槽,腹肌將會把未指定插槽的填充的內(nèi)容填充到默認插槽中。
  • 代碼

1、子組件代碼定義了一個默認插槽:


子組件

2、父組件給默認插槽填充內(nèi)容:


父組件

3、展示的效果


展示的效果
  • 注意:
    1、父級的填充內(nèi)容如果指定到子組件的沒有對應名字插槽,那么內(nèi)容不會被填充到默認插槽中。
    2、如果子組件沒有默認插槽,而父級的填充內(nèi)容指定到默認插槽中,那么該內(nèi)容就不會填充到子組件的任何一個插槽中。
    3、如果子組件有多個默認插槽,那么父組件所有指定到默認插槽的填充內(nèi)容,將“會” “全都”填充到子組件的每個默認插槽中。

    (三)插槽的使用-作用域插槽

  • 描述:作用域插槽就是帶數(shù)據(jù)的插槽,即帶參數(shù)的插槽,簡單來說就是子組件提供給父組件的參數(shù),該參數(shù)僅限于插槽中使用,父組件可根據(jù)子組件傳過來的插槽數(shù)據(jù)進行不同的方式展現(xiàn)和填充插槽內(nèi)容。

1、子組件存放一個帶數(shù)據(jù)的插槽


子組件

2、父組件通過“solt-scope”來接收子組件傳過來的插槽數(shù)據(jù),再根據(jù)插槽數(shù)據(jù)來填充插槽內(nèi)容


父組件

3、展現(xiàn)效果


展示的效果

image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 1.key key 的特殊屬性主要用在 Vue 的虛擬 DOM 算法,在新舊 nodes 對比時辨識 VNodes...
    bayi_lzp閱讀 2,293評論 0 2
  • 什么是插槽? 插槽就是子組件中的提供給父組件使用的一個占位符,用 表示,父組件可以在這個占位符中填充任何模板代...
    web30閱讀 640評論 0 4
  • vue官方文檔中關(guān)于slot插槽的說明很簡短,語言又寫的很凝練,這就有可能造成初次接觸插槽的開發(fā)者容易產(chǎn)生“算了吧...
    dingFY閱讀 388評論 0 0
  • 什么是插槽? 插槽就是子組件中的提供給父組件使用的一個占位符,用 表示,父組件可以在這個占位符中填充任何模板代...
    一只正在成長的程序猿閱讀 481評論 0 4
  • 什么是插槽? 插槽就是子組件中的提供給父組件使用的一個占位符,用 表示,父組件可以在這個占位符中填充任何模板代...
    wanminglei閱讀 326評論 0 0