Vue系列-插槽$slot

在Vue中曙咽,插槽slot是可以由組件使用者來(lái)自定義內(nèi)容蛔趴,用來(lái)做組件的擴(kuò)展。

如下例朱,我們封裝了一個(gè)列表組件
<template>
      ul
          li(v-for="item in list")
                span(v-html="item.text")
</template>
<script>
  export default{
      props:["list"]
  }
</script>

默認(rèn)該組件可以讓使用者傳入list孝情,遍歷顯示list中每個(gè)item的text值
但是,當(dāng)使用者洒嗤,不僅僅用來(lái)顯示text值時(shí)箫荡,組件就要求做調(diào)整
如果不同使用者想要呈現(xiàn)的方式各異,我們沒(méi)理由為這不同的呈現(xiàn)做特殊定制
這時(shí)候插槽就派上用場(chǎng)渔隶,將組件改造如下
<template>
      ul
          li(v-for="item in list")
              slot(:item="item")  
                  span(v-html="item.text")
</template>
<script>
  export default{
      props:["list"]
  }
</script>

使用者就可以自定義插槽內(nèi)容羔挡,如list就是我們封裝好的組件
可以顯示內(nèi)容項(xiàng)的名字
<list><tempalte scope="props"><span v-html="props.item.name"></span></template></list>
可以顯示內(nèi)容項(xiàng)的圖片和描述
<list>
<tempalte scope="props">
<div>
    <img :src="props.item.img"/>
    <span v-html="item.desc"></span>
</div>
</template>
</list>

要注意的是,插槽也會(huì)帶來(lái)一定的問(wèn)題:Vue內(nèi)部檢測(cè)刷新的機(jī)制中间唉,如果組件A中包含了插槽元素绞灼,子節(jié)點(diǎn)之類的,父組件更新的時(shí)候呈野,該組件A會(huì)被強(qiáng)制更新低矮。
如果組件A中render渲染比較耗時(shí)的話,要做多一層封裝被冒;

如下(其中test是我們上面封裝好的組件)

<div id="app">
          <input type="text" v-model="name"/>
           <test :list="list" @hook:updated="testUpdated"><template scope="props"><span v-html="props.item.name"></span></template></test>
</div>
<script>
    new Vue({
        el:"#app",
        data:{
              list:[{name:"123"},{name:"456"},{name:"789"}],
              name:"test"
        },
        methods:{
              testUpdated:function(){
                       console.log("d")
              }
        }
    })
</script>

在這里军掂,每次修改input框值轮蜕,都會(huì)觸發(fā)組件test的更新
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市良姆,隨后出現(xiàn)的幾起案子肠虽,更是在濱河造成了極大的恐慌幔戏,老刑警劉巖玛追,帶你破解...
    沈念sama閱讀 219,188評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異闲延,居然都是意外死亡痊剖,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)垒玲,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)陆馁,“玉大人,你說(shuō)我怎么就攤上這事合愈《7罚” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,562評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵佛析,是天一觀的道長(zhǎng)益老。 經(jīng)常有香客問(wèn)我,道長(zhǎng)寸莫,這世上最難降的妖魔是什么捺萌? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,893評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮膘茎,結(jié)果婚禮上桃纯,老公的妹妹穿的比我還像新娘。我一直安慰自己披坏,他們只是感情好态坦,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著棒拂,像睡著了一般驮配。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上着茸,一...
    開(kāi)封第一講書(shū)人閱讀 51,708評(píng)論 1 305
  • 那天壮锻,我揣著相機(jī)與錄音,去河邊找鬼涮阔。 笑死猜绣,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的敬特。 我是一名探鬼主播掰邢,決...
    沈念sama閱讀 40,430評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼牺陶,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了辣之?” 一聲冷哼從身側(cè)響起掰伸,我...
    開(kāi)封第一講書(shū)人閱讀 39,342評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎怀估,沒(méi)想到半個(gè)月后狮鸭,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,801評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡多搀,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評(píng)論 3 337
  • 正文 我和宋清朗相戀三年歧蕉,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片康铭。...
    茶點(diǎn)故事閱讀 40,115評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡惯退,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出从藤,到底是詐尸還是另有隱情催跪,我是刑警寧澤,帶...
    沈念sama閱讀 35,804評(píng)論 5 346
  • 正文 年R本政府宣布夷野,位于F島的核電站懊蒸,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏扫责。R本人自食惡果不足惜榛鼎,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望鳖孤。 院中可真熱鬧者娱,春花似錦、人聲如沸苏揣。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,008評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)平匈。三九已至框沟,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間增炭,已是汗流浹背忍燥。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,135評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留隙姿,地道東北人梅垄。 一個(gè)月前我還...
    沈念sama閱讀 48,365評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像输玷,于是被迫代替她去往敵國(guó)和親队丝。 傳聞我的和親對(duì)象是個(gè)殘疾皇子靡馁,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評(píng)論 2 355

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

  • vue概述 在官方文檔中,有一句話對(duì)Vue的定位說(shuō)的很明確:Vue.js 的核心是一個(gè)允許采用簡(jiǎn)潔的模板語(yǔ)法來(lái)聲明...
    li4065閱讀 7,227評(píng)論 0 25
  • 探索Vue高階組件 高階組件(HOC)是 React 生態(tài)系統(tǒng)的常用詞匯机久,React 中代碼復(fù)用的主要方式就是使用...
    君惜丶閱讀 974評(píng)論 0 2
  • Test Vue.js Slots in Jest 測(cè)試Vue.js中的Slots插槽 Learn how to ...
    Revontulet閱讀 2,969評(píng)論 0 1
  • 【2019-3-4更新】Vue 2.6+修改了部分語(yǔ)法臭墨,對(duì)插槽的使用有了較多的更新。在本文中筆者在相應(yīng)位置給出了更...
    果汁涼茶丶閱讀 10,249評(píng)論 2 36
  • 喜怒憂愁疏散地膘盖, 二兩白濁盡興意胧弛。 心情本是由心起, 雜貨鋪里賣東西衔憨。 你的文采不錯(cuò)叶圃,隨口的小詩(shī)竟然工整押韻袄膏。 你...
    暴走的毛尖閱讀 236評(píng)論 0 1