摘要:活動(dòng)結(jié)束單文件組件使用構(gòu)建工具創(chuàng)建項(xiàng)目,綜合來(lái)看單文件組件應(yīng)該是最好的定義組件的方式,而且不會(huì)帶來(lái)額外的模版語(yǔ)法的學(xué)習(xí)成本。
前端組件化開(kāi)發(fā)已經(jīng)是一個(gè)老生常談的話題了,組件化讓我們的開(kāi)發(fā)效率以及維護(hù)成本帶來(lái)了質(zhì)的提升。
當(dāng)然因?yàn)楝F(xiàn)在的系統(tǒng)越來(lái)越復(fù)雜龐大,所以開(kāi)發(fā)與維護(hù)成本就變得必須要考慮的問(wèn)題,因此滋生出了目前的三大前端框架 Vue、Angular、React。
那今天我們就來(lái)看看 Vue 中有哪些定義組件模版的方式以及他們之間的一些差別。
字符串形式Vue 最簡(jiǎn)單直接的一種定義組件模版的方式,但是方式寫(xiě)起來(lái)很不友好,就像我們以前拼接 HTML 元素是一樣的,很痛苦,所以我們并不常用
Vue.component("my-button", { data: function () { return { label: "是兄弟就來(lái)砍我" } }, template: "" });模版字面量
模版字面量 ES6 語(yǔ)法,與字符串不同的是,我們可以進(jìn)行多行書(shū)寫(xiě),相對(duì)單純字符串有很大優(yōu)勢(shì),體驗(yàn)更優(yōu),但是可能瀏覽器兼容性會(huì)存在問(wèn)題,需要進(jìn)行轉(zhuǎn)譯為 ES5 語(yǔ)法。
Vue.component("my-content", { data: function () { return { label: "是兄弟就來(lái)砍我", content: "刀刀暴擊" } }, template: `內(nèi)聯(lián)模版(inline-template){{ content }}` });
與 「X-template」模版定義方式被稱為模版定義的替代品,把內(nèi)容定義在組件標(biāo)簽元素的內(nèi)部,而不是作為 slot 內(nèi)容分發(fā),方式比較靈活,但是給讓我們組件的模版與其他屬性分離開(kāi)。
X-template{{label}} Vue.component("my-label", { data: function () { return { label: "趕緊上車(chē)吧,兄die" } } })
定義一個(gè)標(biāo)簽,標(biāo)記text/x-template 類(lèi)型,通過(guò) id 鏈接。
Vue.component("my-label", { template: "#label-template", data: function () { return { label: "趕緊上車(chē)吧,兄die" } } })渲染函數(shù)
渲染函數(shù)需要 JavaScript 完全的編程能力,而且比模版更接近編譯,但需要我們非常熟悉 Vue的實(shí)例屬性,也會(huì)更加的抽象。像 v-if v-for 指令就可以用 JavaScript 語(yǔ)法輕松實(shí)現(xiàn)。
Vue.component("my-label", { data: function () { return { items: ["來(lái)就送!", "來(lái)就送!", "來(lái)就送!"] } }, render: function (createElement) { if (this.items.length) { return createElement("ul", this.items.map(function (item) { return createElement("li", item) })) } else { return createElement("p", "活動(dòng)結(jié)束") } } })JSX
相比渲染函數(shù)的抽象而言,JSX 比較容易一些,對(duì)于熟悉 React 的同學(xué)是比較友好的。
Vue.component("my-label", { data: function () { return { label: ["活動(dòng)結(jié)束"] } }, render(){ return單文件組件{this.label}} })
使用構(gòu)建工具 cli 創(chuàng)建項(xiàng)目,綜合來(lái)看單文件組件應(yīng)該是最好的定義組件的方式,而且不會(huì)帶來(lái)額外的模版語(yǔ)法的學(xué)習(xí)成本。
- {{item}}
以上就是 Vue 中可以定義組件模版的幾種方式,有人可能說(shuō),我特么要知道這么多干嘛,只要一種不就行了,我想說(shuō)兄die多知道幾種可以幫助我們?cè)诓煌臈l件下做出更好的選擇。
比如:你就需要開(kāi)發(fā)一個(gè)簡(jiǎn)單的頁(yè)面,你非要弄個(gè)單文件組件,腳手架跑起來(lái),何必呢,你說(shuō)對(duì)不。
我是:劉小登登,一名愛(ài)寫(xiě)作的技術(shù)人。
關(guān)注公眾號(hào):六小登登,后臺(tái)回復(fù)「1024」即可免費(fèi)獲取驚喜福利!后臺(tái)回復(fù)「加群」邀你進(jìn)群我會(huì)每天全網(wǎng)搜羅好文章給你。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/106443.html
摘要:希望大家在這浮夸的前端圈里,保持冷靜,堅(jiān)持每天花分鐘來(lái)學(xué)習(xí)與思考。 今天的React題沒(méi)有太多的故事…… 半個(gè)月前出了248個(gè)Vue的知識(shí)點(diǎn),受到很多朋友的關(guān)注,都強(qiáng)烈要求再出多些React相前的面試題,受到大家的邀請(qǐng),我又找了20多個(gè)React的使用者,他們給出了328道React的面試題,由我整理好發(fā)給大家,同時(shí)發(fā)布在了前端面試每日3+1的React專(zhuān)題,希望對(duì)大家有所幫助,同時(shí)大...
摘要:聊一聊設(shè)計(jì)模式在組件開(kāi)發(fā)中的應(yīng)用回想一下在你的前端生涯中是否遇到過(guò)以下問(wèn)題在寫(xiě)的時(shí)候經(jīng)常會(huì)在命名時(shí)絞盡腦汁在團(tuán)隊(duì)多人開(kāi)發(fā)中出現(xiàn)命名沖突在進(jìn)行組件化開(kāi)發(fā)時(shí)如何規(guī)范書(shū)寫(xiě)什么是是團(tuán)隊(duì)提出的一種的命名方式,通過(guò)這種命名方式可以很好地解決上面遇到的問(wèn) 聊一聊BEM設(shè)計(jì)模式在Vue組件開(kāi)發(fā)中的應(yīng)用 回想一下在你的前端生涯中是否遇到過(guò)以下問(wèn)題1.在寫(xiě)css的時(shí)候經(jīng)常會(huì)在命名class時(shí)絞盡腦汁2.在...
摘要:聊一聊設(shè)計(jì)模式在組件開(kāi)發(fā)中的應(yīng)用回想一下在你的前端生涯中是否遇到過(guò)以下問(wèn)題在寫(xiě)的時(shí)候經(jīng)常會(huì)在命名時(shí)絞盡腦汁在團(tuán)隊(duì)多人開(kāi)發(fā)中出現(xiàn)命名沖突在進(jìn)行組件化開(kāi)發(fā)時(shí)如何規(guī)范書(shū)寫(xiě)什么是是團(tuán)隊(duì)提出的一種的命名方式,通過(guò)這種命名方式可以很好地解決上面遇到的問(wèn) 聊一聊BEM設(shè)計(jì)模式在Vue組件開(kāi)發(fā)中的應(yīng)用 回想一下在你的前端生涯中是否遇到過(guò)以下問(wèn)題1.在寫(xiě)css的時(shí)候經(jīng)常會(huì)在命名class時(shí)絞盡腦汁2.在...
摘要:要招一個(gè)會(huì)的開(kāi)發(fā)者作為面試官的你,你還會(huì)每次都只是問(wèn)這些老土的問(wèn)題嗎你對(duì)的理解是什么你知道什么是雙向綁定嗎你了解它的原理嗎說(shuō)說(shuō)的生命周期有哪些組件通訊有哪些你用過(guò)嗎作為面試者的你,在網(wǎng)上搜索下面試題及答案,看完后你是不是覺(jué)得自己掌握了武林秘 showImg(https://segmentfault.com/img/bVburrG?w=533&h=300); 要招一個(gè)會(huì)vue的開(kāi)發(fā)者: ...
摘要:更多資源請(qǐng)文章轉(zhuǎn)自月份前端資源分享的作用數(shù)組元素隨機(jī)化排序算法實(shí)現(xiàn)學(xué)習(xí)筆記數(shù)組隨機(jī)排序個(gè)變態(tài)題解析上個(gè)變態(tài)題解析下中的數(shù)字前端開(kāi)發(fā)筆記本過(guò)目不忘正則表達(dá)式聊一聊前端存儲(chǔ)那些事兒一鍵分享到各種寫(xiě)給剛?cè)腴T(mén)的前端工程師的前后端交互指南物聯(lián)網(wǎng)世界的 更多資源請(qǐng)Star:https://github.com/maidishike... 文章轉(zhuǎn)自:https://github.com/jsfr...
閱讀 2092·2021-11-15 11:39
閱讀 3266·2021-10-09 09:41
閱讀 1546·2019-08-30 14:20
閱讀 3344·2019-08-30 13:53
閱讀 3363·2019-08-29 16:32
閱讀 3486·2019-08-29 11:20
閱讀 3064·2019-08-26 13:53
閱讀 815·2019-08-26 12:18