vm.$slots

vm.$slots是一個(gè)對象,鍵名是所有具名slot的名稱枯途,加上一個(gè)default,而鍵值則是一個(gè)存放VNode節(jié)點(diǎn)的數(shù)組。

官網(wǎng)上提供的解釋如下:

用來訪問被 slot 分發(fā)的內(nèi)容察郁。每個(gè)具名 slot 有其相應(yīng)的屬性
(例如:slot="foo" 中的內(nèi)容將會(huì)在 vm.$slots.foo 中被找到)
default 屬性包括了所有沒有被包含在具名 slot 中的節(jié)點(diǎn)。

示例如下:

    <blog-post>
      <h1 slot="header">
        我屬于header
      </h1>
      <h1 slot="header">
        我也屬于header
      </h1>
      <p>
        我誰都不屬于
      </p>
      <p slot="footer">
        我屬于footer
      </p>
      <p>
        誰來認(rèn)領(lǐng)我
      </p>
  </blog-post>

blog-post標(biāo)簽里转唉,元素們被這樣的設(shè)置:

  • 屬于名稱為headerslot的有2個(gè)<h1>
  • 屬于名稱為footerslot的有1個(gè)<p>
  • 屬于不具名slot(會(huì)歸到default里)的有2個(gè)<p>

嘗試查看blog-post組件的$slots皮钠,得到結(jié)果如下:

vm.$slots

可以看到:

  • header對應(yīng)一個(gè)長為2的數(shù)組,就是剛才那2個(gè)<h1>對應(yīng)的VNode節(jié)點(diǎn)赠法。
  • footer對應(yīng)一個(gè)長為1的數(shù)組麦轰,就是剛才那1個(gè)<p>對應(yīng)的VNode節(jié)點(diǎn)。
  • default對應(yīng)一個(gè)長為6的數(shù)組砖织,其中有4個(gè)是空的VNode節(jié)點(diǎn)(產(chǎn)生的原因尚不清楚)款侵,2個(gè)是剛才沒有指定slot屬性的<p>對應(yīng)的VNode節(jié)點(diǎn)。

如果像下面這樣侧纯,指定了render函數(shù)的話新锈,就可以手動(dòng)創(chuàng)建出html標(biāo)簽。

Vue.component('blog-post', {
  render: function (createElement) {
    var header = this.$slots.header
    var body = this.$slots.default
    var footer = this.$slots.footer
    return createElement('div', [
      createElement('header', header),
      createElement('main', body),
      createElement('footer', footer)
    ])
  }
})

createElement(html標(biāo)簽名, VNode節(jié)點(diǎn)數(shù)組)會(huì)編譯出一個(gè)指定的html標(biāo)簽眶熬,然后把VNode節(jié)點(diǎn)數(shù)組里非空的VNode節(jié)點(diǎn)編譯回原來的html內(nèi)容妹笆。其結(jié)果就相當(dāng)于把原來的那些<blog-post>標(biāo)簽之間的內(nèi)容根據(jù)它們的slot屬性,放進(jìn)了指定的標(biāo)簽里娜氏。

剛剛的例子里晾浴,最終編譯出的html結(jié)構(gòu)如下:

html結(jié)構(gòu)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市牍白,隨后出現(xiàn)的幾起案子脊凰,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件狸涌,死亡現(xiàn)場離奇詭異切省,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)帕胆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進(jìn)店門朝捆,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人懒豹,你說我怎么就攤上這事芙盘。” “怎么了脸秽?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵儒老,是天一觀的道長。 經(jīng)常有香客問我记餐,道長驮樊,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任片酝,我火速辦了婚禮囚衔,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘雕沿。我一直安慰自己练湿,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布审轮。 她就那樣靜靜地躺著肥哎,像睡著了一般。 火紅的嫁衣襯著肌膚如雪断国。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天榆苞,我揣著相機(jī)與錄音稳衬,去河邊找鬼。 笑死坐漏,一個(gè)胖子當(dāng)著我的面吹牛薄疚,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播赊琳,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼街夭,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了躏筏?” 一聲冷哼從身側(cè)響起板丽,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后埃碱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體猖辫,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年砚殿,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了啃憎。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,841評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡似炎,死狀恐怖辛萍,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情羡藐,我是刑警寧澤贩毕,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站传睹,受9級(jí)特大地震影響耳幢,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜欧啤,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一睛藻、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧邢隧,春花似錦店印、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至纫谅,卻和暖如春炫贤,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背付秕。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工兰珍, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人询吴。 一個(gè)月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓掠河,卻偏偏與公主長得像,于是被迫代替她去往敵國和親猛计。 傳聞我的和親對象是個(gè)殘疾皇子唠摹,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評論 2 354

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

  • 這篇筆記主要包含 Vue 2 不同于 Vue 1 或者特有的內(nèi)容,還有我對于 Vue 1.0 印象不深的內(nèi)容奉瘤。關(guān)于...
    云之外閱讀 5,050評論 0 29
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理勾拉,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,656評論 18 139
  • Redis Cluster Redis Cluster是Redis官方在Redis 3.0版本正式推出的高可用以及...
    Springlin閱讀 3,782評論 1 5
  • 下載安裝搭建環(huán)境 可以選npm安裝望艺,或者簡單下載一個(gè)開發(fā)版的vue.js文件 瀏覽器打開加載有vue的文檔時(shí)苛秕,控制...
    冥冥2017閱讀 6,039評論 0 42
  • 早飯老公說準(zhǔn)備攤面托兒,上圖找默!看著他在那得心應(yīng)手艇劫,我也想試試,老公同意最后一個(gè)讓我來顯身手惩激!請看下圖 沒有對比就沒...
    快樂舒馨閱讀 333評論 0 1