vue元件 使用插槽分發內容 slot

2021-09-28 15:44:18 字數 2728 閱讀 5731

官網api: 使用插槽分發內容

使用元件時,有時子元件不知道會收到什麼內容,這是由父元件決定的。

1.my-component 元件:

<

div>

<

h2>我是子元件的標題

h2>

只有在沒有要分發的內容時才會顯示。

div>

2.父元件:

<

div>

<

h1>我是父元件的標題

h1>

這是一些初始內容

這是更多的初始內容

div>

3.渲染結果:

<

div>

<

h1>我是父元件的標題

h1>

<

div>

<

h2>我是子元件的標題

h2>

這是一些初始內容

這是更多的初始內容

div>

div>

slot根據不同的name名稱分發內容,多個插槽可以有不同的名字。

仍然可以有匿名的預設插槽,為了找不到匹配的內容片段使用,如果沒有預設插槽,這些找不到匹配的內容片段將被拋棄。

1.my-component 元件:

<

div

class="container"

>

<

header

>

<

slot

name="header"

>

slot

>

header

>

<

main

>

<

slot

>

slot

>

main

>

<

footer

>

<

slot

name="footer"

>

slot

>

footer

>

div>

2.父元件:

<

my-component

>

<

h1 slot

="header"

>這裡可能是乙個頁面標題

h1>

<

p>主要內容的乙個段落。

p>

<

p>另乙個主要段落。

p>

<

p slot

="footer"

>這裡有一些聯絡資訊

p>

my-component

>

3.渲染結果:

<

div

class="container"

>

<

header

>

<

h1>這裡可能是乙個頁面標題

h1>

header

>

<

main

>

<

p>主要內容的乙個段落。

p>

<

p>另乙個主要段落。

p>

main

>

<

footer

>

<

p>這裡有一些聯絡資訊

p>

footer

>

div>

作用域插槽是一種特殊型別的插槽,用作乙個 (能被傳遞資料的) 可重用模板,來代替已經渲染好的元素。

1.子元件:

<

div

class="child"

>

<

slot

text

="hello from child"

>

slot

>

div>

2.父元件:

<

div

class="parent"

>

<

child

>

<

template

slot-scope

="props"

>

<

span

>hello from parent

span

>

<

span

>}

span

>

template

>

child

>

div>

3.渲染結果:

<

div

class="parent"

>

<

div

class="child"

>

<

span

>hello from parent

span

>

<

span

>hello from child

span

>

div>

div>

更多專業前端知識,請上

【猿2048】www.mk2048.com

VUE 元件(三)使用slot分發內容

當需要讓元件組合使用,混合父元件的內容與子元件的模板時,就會用到sloat,這個過程叫做內容分發。props傳遞資料,events觸發事件,sloat分發內容,就構成了vue元件的3個api 一 slot的用法 單個slot 在子元件內使用特殊的元素就可以為這個子元件開啟乙個slot 插槽 在父元件...

Vue元件插槽

三 具名插槽 命名插槽 補充當我們使用vue元件時,常常遇到子元件的部分布局在不同的路由元件上表現不同的情況,vue為了幫助我們開發者解決這個問題,新增了插槽這個功能 插槽即佔位符 實現元件在不同父元件中使用,內部可以有不一樣 塊 html 如下 示例 如下 示例 當乙個子元件內,需要多個插槽時,需...

vue 元件中solt 插槽使用

官方教程 如果現在事先模板中不知道需要什麼內容,需要在使用時傳遞 就可以使用插槽with來實現,這種效果 類似thinkphp中的模板繼承 的block標籤的功能 顧名思義就是沒有名字的插槽,匿名插槽只能有乙個 其他內容 匿名插槽 預設內容 其他內容 實名插槽可以有多個,在使用時必須使用name屬性...