遞歸組件
組件在它的模板中可以遞歸地調(diào)用自己,但是需要給組件設(shè)置 name 的選項(xiàng)。同時(shí)要注意限制遞歸的數(shù)量桂躏,否則會(huì)拋出錯(cuò)誤:max stack size exceeded
內(nèi)聯(lián)模板
Vue 提供一個(gè)內(nèi)聯(lián)模板的功能抢埋,使用組件時(shí),給組件標(biāo)簽使用 inline-template 特性州疾,組件就會(huì)把它的內(nèi)容當(dāng)成模板辜限,而不是把它當(dāng)內(nèi)容分發(fā)。此時(shí)严蓖,子組件和父組件的數(shù)據(jù)都可以在內(nèi)容中薄嫡,更加靈活,但同時(shí)數(shù)據(jù)的作用域也是會(huì)令人費(fèi)解颗胡。
<child-component inline-template>
<p>{{ parentData }}</p>
<p>{{ childrenData }}</p>
</child-component>
動(dòng)態(tài)組件
Vue.js 提供了一個(gè)特殊的元素 <component> 用來動(dòng)態(tài)的掛載不同的組件毫深,使用 is 特性來選擇要掛載的組件
<component :is="componentName"></component>
components:{
componentA,
componentB,
componentC
}
data(): {
return {
componentName: 'componentA'
}
}
異步組件
- Vue.js 允許將組件定義為一個(gè)工廠函數(shù),這樣我們就可以動(dòng)態(tài)地解析組件毒姨。Vue.js只需要在組件需要渲染時(shí)觸發(fā)工廠函數(shù)哑蔫,并且把結(jié)果緩存起來,用于后面的再次渲染手素。
- 使用 webpack 和 .vue 單文件的用法鸳址,可以更優(yōu)雅地實(shí)現(xiàn)異步組件(路由)