這篇文章主要介紹了Vue.js組件高級特性有哪些用法,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
創(chuàng)新互聯(lián)公司是一家專注于網(wǎng)站制作、成都網(wǎng)站制作與策劃設(shè)計,沾化網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)10年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:沾化等地區(qū)。沾化做網(wǎng)站價格咨詢:028-86922220具體如下:
1 遞歸
為組件設(shè)置 name屬性,這個組件就可以在自身的模板內(nèi)遞歸調(diào)用自己。
html:
js:
Vue.component('deniro-component',{ name:'deniro-component', props:{ count:{ type:Number, default:1 } }, template:'\\\ ' }); var app = new Vue({ el: '#app', data: {} });{{count}} 微信大變樣!看了這些新功能后,網(wǎng)友淡定不住了
\\
效果:
渲染結(jié)果:
可以利用組件的可遞歸特性,來實現(xiàn)一些具有不確定層級的組件,比如級聯(lián)選擇器和樹型組件。
2 內(nèi)聯(lián)模板
一般情況下,組件的模板都是在 template 中定義的。我們也可以在組件標(biāo)簽中加上 inline-template 屬性,這樣組件就會把它的內(nèi)容作為實際的模板內(nèi)容。
內(nèi)聯(lián)模板可以接收父、子組件中聲明的數(shù)據(jù),所以更加靈活。
html:
父組件中定義子組件模板
{{content1}}
{{content2}}
js:
Vue.component('deniro-component2',{ data:function () { return { content1:'雙屏手機一碰就碎?實測結(jié)果意外(來源于子組件)' } } }); var app2 = new Vue({ el: '#app2', data: { content2:'AI正在改變所有行業(yè) 咖啡也將被消滅(來源于父組件)' } });
渲染結(jié)果:
父組件中定義子組件模板
雙屏手機一碰就碎?實測結(jié)果意外(來源于子組件)
AI正在改變所有行業(yè) 咖啡也將被消滅(來源于父組件)
如果父子組件定義的數(shù)據(jù)同名,那么優(yōu)先使用子組件中的數(shù)據(jù)。
因為作用域較難理解,所以除非必要,否則不建議使用。
3 動態(tài)加載
我們可以使用 is 來實現(xiàn)動態(tài)掛載組件。
html:
js:
var app3 = new Vue({ el: '#app3', components: { componentA: { template: '組件 A' }, componentB: { template: '組件 B' }, componentC: { template: '組件 C' } }, data: { currentView: 'componentA' }, methods: { change: function (component) { this.currentView = 'component' + component; } } });
效果:
data 中的 is 變量也可以直接綁定組件對象。
html:
js:
var news={ template:'無人機送快遞 漸行漸近
' } var app4 = new Vue({ el: '#app4', data: { currentView: news } });
渲染結(jié)果:
無人機送快遞 漸行漸近
4 異步加載
當(dāng)工程變得越來越大時,就需要考慮性能嘍。我們可以把組件定義成一個工廠函數(shù),實現(xiàn)組件動態(tài)解析。Vue.js 會把本次渲染后的結(jié)果緩存起來,從而提高性能。
html:
js:
Vue.component('deniro-component5', function (resolve,reject) { window.setTimeout(function () { resolve({ template:'全球首個5G電話撥通' }); },1000); }); var app5 = new Vue({ el: '#app5' });
效果:
這里使用 setTimeout 來模擬異步下載,下載成功后會調(diào)用 resolve 方法。
一般情況下,會把組件的配置定義為對象配置,然后通過 Ajax 請求組件配置信息,最后通過 resolve 傳入這些配置。
完整實例代碼:
vue.js組件高級特性 父組件中定義子組件模板
{{content1}}
{{content2}}
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Vue.js組件高級特性有哪些用法”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計公司,關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計公司行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、網(wǎng)站設(shè)計器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。