slot分發(fā)內(nèi)容

一帆啃、slot定義

中文插槽彩匕,混合父組件的內(nèi)容與子組件自已模板的方式
其中 Vuejs 把 slot 元素作為原始內(nèi)容的插槽

二财松、編譯作用域

//父組件
<div id="app">
<my-component>{{msg}}</my-component>
</div> //msg綁定到是父組件的內(nèi)容

//子組件
...
components:{
  'my-component':{
    template:'<div></div>'    
   }    
}
...

小總結(jié):
父組件模板內(nèi)容在父組件作用域內(nèi)編譯
子組件模板內(nèi)容在子組件作用域內(nèi)編譯

三辽聊、slot用法

1?單個插槽

//html
...
<my-component>我是父組件內(nèi)容</my-component>

//js
...
template:'<div>\
    <slot>\
    如果沒有內(nèi)容顯示痴脾,默認(rèn)是我\
    </slot>\
</div>'
...

2?具名插槽

//html
...
具名插槽(有具體名字的插槽): 視圖不變颤介,數(shù)據(jù)變
<name-component>
  <h3 slot="header">我是標(biāo)題</h3>
  <p>我是正文內(nèi)容</p>
  <p>正文內(nèi)容有兩段</p>
  <p slot="footer">我是底部信息</p>
</name-component>
//js
...
'name-component':{
    template:'<div>\
                <div class="header">\n' +
                '        <slot name="header">' + //取出name是 header 對應(yīng)的內(nèi)容
                '</slot>\n' +
                '    </div>\n' +
                '    \n' +
                '    <div class="container">\n' +
                '        <slot>' + // 沒加 name 會把默認(rèn)的取回來
                '</slot>\n' +
                '    </div>\n' +
                '\n' +
                '    <div class="footer">\n' +
                '        <slot name="footer">' + //取出name是footer對應(yīng)的內(nèi)容
                '</slot>\n' +
                '    </div>' +
                '</div>' 
     }
}

【Demo實例https://jsbin.com/jijelop/edit?html,output

四?作用域插槽

使用一個可以復(fù)用的模板來替換已經(jīng)渲染的元素(從子組件中獲取數(shù)據(jù))
注:template模板不會被渲染,渲染的是template標(biāo)簽內(nèi)的內(nèi)容 (v2.5.0版本之前)

//html
...
<my-component>
   <template slot="abc" slot-scope="prop">
     {{ prop.text}}
    </template>   

    //v2.5.0版本后,可在別的標(biāo)簽(比如p,span,div等)上用 slot,slot-scope赞赖,并渲染標(biāo)簽
    <p slot="abc" slot-scope="prop"> 
        {{prop.text}}
    </p>
 </my-component>

//js
...
components:{
   'my-component':{
      template:'<div>\
            <slot text="我是來自子組件" name="abc">\
            </slot>\
      </div>'//在子組件定義一個slot滚朵,寫上要傳遞的數(shù)據(jù)
    }
 }

【Demo實例https://jsbin.com/hawodox/edit?html,output

五、訪問slot

通過 this.$slots.name 訪問

//html
...
<name-component>
    <h3 slot="header"><span>我是標(biāo)題</span></h3>
</name-component>

//js
...
mounted:function(){
// 訪問插槽
 var header = this.$slots.header 
 var text = header[0].elm.innerText
 var html = header[0].elm.innerHTML
 console.log(header)
 console.log(text)
 console.log(html)
}  

【Demo實例https://jsbin.com/zarewac/edit?html,console,output

六前域、組件高級用法-動態(tài)組件

component元素 (vue 提供)

1?作用

動態(tài)掛載不同組件

2?實現(xiàn)

使用is屬性實現(xiàn)

//html
...
<button @click="handleView('A')">第1句</button>
<button @click="handleView('B')">第2句</button>
<button @click="handleView('C')">第3句</button>
<button @click="handleView('D')">第4句</button>


//js
...
components:{
        'compA':{
            template:'<div>離離原上草</div>'
        },
        'compB':{
            template:'<div>一歲一枯榮</div>'
        },
        'compC':{
            template:'<div>野火燒不盡</div>'
        },
        'compD':{
            template:'<div>春風(fēng)吹又生</div>'
        }
 },
 methods:{
        handleView:function(tag){
            this.thisView = 'comp' + tag
        }
 }
 data:{
        thisView:'compA'
 }

【Demo實例 https://jsbin.com/gocarif/edit?html,output

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末辕近,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子匿垄,更是在濱河造成了極大的恐慌移宅,老刑警劉巖归粉,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異漏峰,居然都是意外死亡糠悼,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進店門浅乔,熙熙樓的掌柜王于貴愁眉苦臉地迎上來倔喂,“玉大人,你說我怎么就攤上這事靖苇∠” “怎么了?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵贤壁,是天一觀的道長班挖。 經(jīng)常有香客問我,道長芯砸,這世上最難降的妖魔是什么萧芙? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮假丧,結(jié)果婚禮上双揪,老公的妹妹穿的比我還像新娘。我一直安慰自己包帚,他們只是感情好渔期,可當(dāng)我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著渴邦,像睡著了一般疯趟。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上谋梭,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天信峻,我揣著相機與錄音,去河邊找鬼瓮床。 笑死盹舞,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的隘庄。 我是一名探鬼主播踢步,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼丑掺!你這毒婦竟也來了获印?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤街州,失蹤者是張志新(化名)和其女友劉穎兼丰,沒想到半個月后绰咽,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡地粪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年取募,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蟆技。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡玩敏,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出质礼,到底是詐尸還是另有隱情旺聚,我是刑警寧澤,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布眶蕉,位于F島的核電站砰粹,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏造挽。R本人自食惡果不足惜碱璃,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望饭入。 院中可真熱鬧嵌器,春花似錦、人聲如沸谐丢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽乾忱。三九已至讥珍,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間窄瘟,已是汗流浹背衷佃。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留寞肖,地道東北人纲酗。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像新蟆,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子右蕊,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,724評論 2 354