vue插槽

前言

vue插槽在開發(fā)中用到峭咒,這里做一個梳理。

  • slot標(biāo)簽 內(nèi)置組件 可以理解為占位符纪岁,最后被替換為內(nèi)容凑队。(子組件中使用)
  • v-slot指令 該指令僅限于template組件和自定義組件中使用。(父組件中使用)
  • 插槽:普通插槽幔翰、具備后備內(nèi)容插槽漩氨、具名插槽西壮、作用域插槽
一、普通插槽

將slot標(biāo)簽作為占位符叫惊。

let baseChild = `<div class="child"><slot></slot></div>`;
let parent = new Vue({
    components:{
        baseChild
    },
    template: `<div id="app"><base-child>普通插槽</base-child></div>`
}).$mount("#app");

最終渲染結(jié)果為

<div class="child">普通插槽</div>
二款青、具備后備內(nèi)容插槽

如果父組件沒有定義插槽,就會顯示默認(rèn)的內(nèi)容赋访。

let baseChild = `<div class="child"><slot>后備內(nèi)容</slot></div>`;
let parent = new Vue({
    components:{
        baseChild
    },
    template: `<div id="app"><base-child></base-child></div>`
}).$mount("#app");

最終渲染結(jié)果為

<div class="child">后備內(nèi)容</div>
三可都、具名插槽

可以通過定義名稱來區(qū)別插槽

let baseChild = `<div class="child">
        <slot name="header"></slot>
        <slot>默認(rèn)插槽,匹配不到就取這個</slot>
        <slot name="footer"></slot>
    </div>`;
let parent = new Vue({
    components:{
        baseChild
    },
    template: `<div id="app">
        <base-child>
            <template v-slot:header><span>header</span></template>
            <template v-slot:footer><span>footer</span></template>
            <template>匿名插槽</template>
        </base-child>
    </div>`
}).$mount("#app");

最終渲染結(jié)果為

<div class="child">
    <span>header</span>
    <span>匿名插槽</span>
    <span>footer</span>
</div>
注意:元素布局順序最終以子組件為主蚓耽。
parent組件(header,footer,匿名)渠牲,child組件(header,匿名,footer),最終渲染結(jié)果為子組件的順序步悠。
1.具名插槽的簡寫
<template v-slot:header></template>
可以簡寫成以下寫法
<template #header></template>
2.動態(tài)插槽名
<template v-slot:[slotName]></template>
四签杈、作用域插槽

作用域插槽可以實現(xiàn)組件通信。子組件的變量鼎兽,父組件的插槽里面可以使用答姥。
語法

v-slot:[slotName]="props"

這個例子中,選擇將包含所有插槽 prop 的對象命名為 props谚咬,但也可以使用任意喜歡的名字鹦付。

子組件

<template>
    <div class="son">
        <slot name="main" :user="user"></slot>
    </div>
</template>
<script lang="ts">
import Vue from 'vue'
export default Vue.extend({
    data(){
        return{
            user:{
                name:"banana",
                age:18
            }
        }
    }
})
</script>

父組件

<template>
    <div>
        <!-- 作用域插槽 -->
        <div class="parent">
            <base-slot class="base-slot">
                <template #main="props">
                    <div>
                        名字:{{props.user.name}}
                    </div>
                    <div>
                        年齡:{{props.user.age}}
                    </div>
                </template>
            </base-slot>
        </div>
    </div>
</template>
<script lang="ts">
import baseSlot from "./base-slot.vue"
import Vue from 'vue'
export default Vue.extend({
    components:{
        baseSlot
    },
})
</script>

最終渲染結(jié)果為

<div class="son base-slot">
    <div>
        名字:banana
    </div>
    <div>
        年齡:18
    </div>
</div>
插槽.jpg
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市择卦,隨后出現(xiàn)的幾起案子敲长,更是在濱河造成了極大的恐慌,老刑警劉巖秉继,帶你破解...
    沈念sama閱讀 206,311評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件祈噪,死亡現(xiàn)場離奇詭異,居然都是意外死亡尚辑,警方通過查閱死者的電腦和手機(jī)辑鲤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,339評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來杠茬,“玉大人月褥,你說我怎么就攤上這事∑昂恚” “怎么了吓坚?”我有些...
    開封第一講書人閱讀 152,671評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長灯荧。 經(jīng)常有香客問我礁击,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,252評論 1 279
  • 正文 為了忘掉前任哆窿,我火速辦了婚禮链烈,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘挚躯。我一直安慰自己强衡,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,253評論 5 371
  • 文/花漫 我一把揭開白布码荔。 她就那樣靜靜地躺著漩勤,像睡著了一般。 火紅的嫁衣襯著肌膚如雪缩搅。 梳的紋絲不亂的頭發(fā)上越败,一...
    開封第一講書人閱讀 49,031評論 1 285
  • 那天,我揣著相機(jī)與錄音硼瓣,去河邊找鬼究飞。 笑死,一個胖子當(dāng)著我的面吹牛堂鲤,可吹牛的內(nèi)容都是我干的亿傅。 我是一名探鬼主播,決...
    沈念sama閱讀 38,340評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼瘟栖,長吁一口氣:“原來是場噩夢啊……” “哼葵擎!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起半哟,我...
    開封第一講書人閱讀 36,973評論 0 259
  • 序言:老撾萬榮一對情侶失蹤酬滤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后镜沽,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,466評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡贱田,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,937評論 2 323
  • 正文 我和宋清朗相戀三年缅茉,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片男摧。...
    茶點故事閱讀 38,039評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡蔬墩,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出耗拓,到底是詐尸還是另有隱情拇颅,我是刑警寧澤,帶...
    沈念sama閱讀 33,701評論 4 323
  • 正文 年R本政府宣布乔询,位于F島的核電站樟插,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜黄锤,卻給世界環(huán)境...
    茶點故事閱讀 39,254評論 3 307
  • 文/蒙蒙 一搪缨、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧鸵熟,春花似錦副编、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,259評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至打月,卻和暖如春队腐,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背僵控。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工香到, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人报破。 一個月前我還...
    沈念sama閱讀 45,497評論 2 354
  • 正文 我出身青樓悠就,卻偏偏與公主長得像,于是被迫代替她去往敵國和親充易。 傳聞我的和親對象是個殘疾皇子梗脾,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,786評論 2 345

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

  • 什么是插槽? 插槽(Slot)是vue為組建的封裝者提供的能力盹靴,允許開發(fā)者在封裝組件時炸茧,把不確定的、希望由用戶指定...
    沃德麻鴨閱讀 1,533評論 0 0
  • 本文參考官網(wǎng)的插槽[https://vuejs.org/v2/guide/components-slots.htm...
    lio_zero閱讀 396評論 0 3
  • 什么是插槽稿静? 插槽就是子組件中的提供給父組件使用的一個占位符梭冠,用 表示,父組件可以在這個占位符中填充任何模板代...
    一只正在成長的程序猿閱讀 452評論 0 4
  • 什么是插槽改备? 插槽就是子組件中的提供給父組件使用的一個占位符控漠,用 表示,父組件可以在這個占位符中填充任何模板代...
    wanminglei閱讀 313評論 0 0
  • 一悬钳、概念解析 插槽slot:插槽有點像組件中的一個占位符盐捷,當(dāng)別的組件使用這個組件的時候,在這一對標(biāo)簽中又寫了其他內(nèi)...
    klmhly閱讀 538評論 0 0