關於作用域插槽的理解

2021-09-13 12:05:22 字數 1088 閱讀 8814

插槽不難理解,就是子元件提供了可替換模板,父元件可以更換模板的內容。

具名插槽,讓子元件內可以提供多個插槽,父元件就可以對應替換多塊的內容。

作用域插槽理解起來比較難,官方文件比較簡單,網上又實在沒有找到很好的解釋,作為初學者我花了點時間,這裡分享一下我的理解,也方便自己記憶。

作用域插槽代表性的例子就是列表元件,乙個列表元件,寫乙個props接收資料,然後組織好ul、li標籤,寫好樣式,就像這樣

父元件只需要傳入資料即可

生成的效果就是這樣的

在其它地方使用這個子元件,生成的效果樣式是一樣的,如果希望在另乙個父元件下有不一樣的樣式,這個子元件是沒法做到的。例如我想讓其在另一父元件下時,序號是紅色,書名要加粗,作者名字是斜體。

讓我們修改一下子元件:

原來的用插槽包起來,v-for也與繫結,在沒有父元件插入內容的情況下預設顯示這裡的內容。在上使用v-bind,將index、name、author動態資料傳入插槽。

這時父元件這樣寫:

}、《}》}

最裡面的template標籤相當於父元件重新定義的模板,通過child這個臨時變數,訪問插槽裡的子元件傳入的資料,最後生成的效果:

最後總結一下,作用域插槽給了子元件將資料返給父元件的能力,子元件一樣可以復用,同時父元件也可以重新組織內容和樣式

插槽 具名插槽 作用域插槽

一 插槽 當子元件的有一部分內容是根據父元件傳過來的dom顯示的時候,可以使用插槽 通過插槽,父元件向子元件優雅的傳遞dom結構,同時子元件使用插槽的內容,通過 body well 二 具名插槽 slot header header slot footer footer 三 作用域插槽 作用域插槽 ...

作用域插槽

應用場景 父元件對子元件的內容進行加工處理 我們先來看2.6版本之前的寫法 父元件 子元件 再來看2.6版本之後的寫法,子元件的寫法不用變,和原來一模一樣,來看父元件的寫法 父元件 我們可以清晰的看到,在子元件中有個插槽slot通過v bind繫結了乙個值item,在父元件中引用了子元件child,...

Vue作用域插槽

root 父元件呼叫子元件的時候,給子元件傳了乙個插槽 這個插槽叫作用域插槽 作用域插槽必須以 template開頭和結尾 同時這個插槽要宣告 你要從子元件接收的資料都放在哪 這裡是放在props裡面了 還要告訴子元件模板的資訊 即接收的props怎麼展示資料 props tony h4 templ...