91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

slot內容分發的使用

發布時間:2020-06-20 13:03:34 來源:網絡 閱讀:594 作者:xxxpjgl 欄目:web開發

一、定義了一個組件custom,該組件本身已經具備template模板了,直接調用<custom></custom>即可渲染模板

<div id="app">
    <custom></custom>
</div>
<script>
    Vue.component('custom',{
        template:`
            <div class="customStyle">
                <p>custom組件內容一</p>
                <p>custom組件內容二</p>
                <p>custom組件內容三</p>
            </div>
        `
    })
    new Vue({
        el:'#app'
    })
</script>

二、匿名插槽
現在,在使用組件custom的同時,想替換這個組件默認已經定義好的模板,就可以使用slot內容分發
用法:
在<custom></custom>內部寫入一些希望展示的html模板,比如
<custom><div>我是自定義的模板</div></custom>,然后,將組件template用<slot></slot>包裹起來,即:

<div id="app">
    <custom><div>我是自定義的模板</div></custom>
</div>
<script>
    Vue.component('custom',{
        template:`
            <div class="customStyle">
                <slot>
                    <p>custom組件內容一</p>
                    <p>custom組件內容二</p>
                    <p>custom組件內容三</p>
                </slot>
            </div>
        `
    })
    new Vue({
        el:'#app'
    })
</script>

那么,
當在custom標簽內有自定義的模板時,那么就會替代slot內部的模板內容,渲染到頁面
而當在custom標簽內沒有自定義的模板,那么就會渲染slot內部的模板內容

這就是匿名插槽,不用設置名稱屬性name,單個插槽可以放置在組件的任意位置,但是就像它的名字一樣,一個組件中只能有一個該類插槽。相對應的,具名插槽就可以有很多個,只要名字(名稱屬性)不同就可以了。
slot內容分發的使用

二、具名插槽
在custom標簽內有自定義的模板,數量很多,想讓custom標簽內某部分的模板渲染到,組件內部對應的位置時,就使用具名插槽了

<div id="app">
    <custom>

        <div slot="one">替換組價內容一</div>
        <div slot="three">替換組價內容三</div>

        <template slot="two">  //當自定義的模板內容很多時,就可以使用template括起來,寫上slot
            <div>替換組價內容二</div>
            <div>替換組價內容二</div>
            <div>替換組價內容二</div>
            <div>替換組價內容二</div>
            <div>替換組價內容二</div>
        </template>

        <div>替換無名的slot</div>  //沒寫slot屬性值時,就默認替換slot沒有name值的那個模板內容

    </custom>
</div>
<script>
    Vue.component('custom',{
        template:`
            <div class="customStyle">

                    <slot name="one><p">custom組件內容一</p></slot>
                    <slot name="two"><p>custom組件內容二</p></slot>
                    <slot name="three"><p>custom組件內容三</p></slot>

                    <slot><p>我是無名的slot</p></slot>

            </div>
        `
    })
    new Vue({
        el:'#app'
    })
</script>

slot內容分發的使用

三、編譯作用域
slot內容分發的使用
<div id="app"> //id為app所在的區域都屬于父組件
<custom> //這是父組件,所以這個message渲染的是父組件里的message
{{message}}
</custom>
</div>
<script>
Vue.component('custom',{
data(){
return {
message:'我是子組件的數據'
}
},
template:`
<div class="customStyle">
{{message}} //這是子組件,所以這個message渲染的是子組件里的message
<h3>我是默認的永遠都顯示的模板內容</h3>
<slot></slot>

        </div>
    `
})
new Vue({
    el:'#app',
    data:{
        message:'我是父組件的數據'
    }
})

</script>



四、總結:匿名插槽:看到自定義組件內容有模板時,直接聯想到可以替換組件定義時template的<slot></slot>里的內容,如果模板內容沒有slot包裹,則默認全部永遠都顯示(只要調用了這個組件)
具名插槽:看到自定義組件內容內的模板有slot屬性值,則和組件定義時template的<slot></slot>上的name值一一對應
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

克山县| 平乡县| 冀州市| 年辖:市辖区| 闸北区| 游戏| 花莲市| 陆河县| 福建省| 土默特左旗| 横山县| 罗定市| 景宁| 南昌市| 仪陇县| 南开区| 芜湖市| 黔西县| 黄大仙区| 鞍山市| 阳原县| 苏尼特左旗| 涟水县| 鹤壁市| 桐乡市| 盘山县| 鄂托克前旗| 奉贤区| 霍州市| 吴旗县| 德保县| 赣州市| 视频| 安顺市| 南汇区| 达拉特旗| 策勒县| 广德县| 台湾省| 栾川县| 武隆县|