最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue 中可以定義組件模版的幾種方式

 更新時(shí)間:2019年08月06日 10:21:11   作者:六小登登  
這篇文章主要介紹了Vue 中可以定義組件模版的幾種方式以及他們之間的一些差別,需要的朋友可以參考下

前端組件化開(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: "<button>{{label}}</button>"
});

模版字面量

模版字面量 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: `
 <div>
  <button>{{ label }}</button>
  <span>{{ content }}</span>
 </div>
 `
});

內(nèi)聯(lián)模版(inline-template)

與 「X-template」模版定義方式被稱為模版定義的替代品,把內(nèi)容定義在組件標(biāo)簽元素的內(nèi)部,而不是作為 slot 內(nèi)容分發(fā),方式比較靈活,但是給讓我們組件的模版與其他屬性分離開(kāi)。

<my-label inline-template>
 <span>{{label}}</span>
</my-label>
Vue.component('my-label', {
 data: function () {
 return {
  label: "趕緊上車(chē)吧,兄die"
 }
 }
})

X-template

定義一個(gè) <script> 標(biāo)簽,標(biāo)記 text/x-template 類型,通過(guò) id 鏈接。

<script type="text/x-template" id="label-template">
 <span>{{label}}</span>
</script>
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 <div>{this.label}</div>
 }
})

單文件組件

使用構(gòu)建工具 cli 創(chuàng)建項(xiàng)目,綜合來(lái)看單文件組件應(yīng)該是最好的定義組件的方式,而且不會(huì)帶來(lái)額外的模版語(yǔ)法的學(xué)習(xí)成本。

<template>
 <div>
 <ul>
  <li v-for="(item, index) in items" :key="index">{{item}}</li>
 </ul>
 </div>
</template>
<script>
export default {
 data() {
 return {
  items: ["我砍", "我砍", "我砍"]
 };
 }
};
</script>

以上就是 Vue 中可以定義組件模版的幾種方式,有人可能說(shuō),我特么要知道這么多干嘛,只要一種不就行了,我想說(shuō)兄die多知道幾種可以幫助我們?cè)诓煌臈l件下做出更好的選擇。

比如:你就需要開(kāi)發(fā)一個(gè)簡(jiǎn)單的頁(yè)面,你非要弄個(gè)單文件組件,腳手架跑起來(lái),何必呢,你說(shuō)對(duì)不。

總結(jié)

以上所述是小編給大家介紹的Vue 中可以定義組件模版的幾種方式,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!

相關(guān)文章

  • 全面詳解vue種數(shù)組去重的12種方法示例

    全面詳解vue種數(shù)組去重的12種方法示例

    這篇文章主要介紹了vue數(shù)組去重的12種方法示例全面詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • vue+axios實(shí)現(xiàn)文件上傳的實(shí)時(shí)進(jìn)度條

    vue+axios實(shí)現(xiàn)文件上傳的實(shí)時(shí)進(jìn)度條

    最近用vue寫(xiě)上傳的時(shí)候,遇到一個(gè)需求就是頁(yè)面上展示上傳的進(jìn)度條,之后寫(xiě)過(guò)一次,但是用的是假交互,直接從0-100,今天分享一下用axios自帶的onUploadProgress來(lái)完成這個(gè)小需求,感興趣的朋友可以參考下
    2024-01-01
  • Vue 獲取數(shù)組鍵名的方法

    Vue 獲取數(shù)組鍵名的方法

    本篇文章主要介紹了Vue 獲取數(shù)組鍵名的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • 基于ant-design-vue實(shí)現(xiàn)表格操作按鈕組件

    基于ant-design-vue實(shí)現(xiàn)表格操作按鈕組件

    這篇文章主要為大家介紹了基于ant-design-vue實(shí)現(xiàn)表格操作按鈕組件示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • vue+iview實(shí)現(xiàn)文件上傳

    vue+iview實(shí)現(xiàn)文件上傳

    這篇文章主要為大家詳細(xì)介紹了vue+iview實(shí)現(xiàn)文件上傳,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-11-11
  • Vue之el-option下拉框綁定問(wèn)題

    Vue之el-option下拉框綁定問(wèn)題

    這篇文章主要介紹了Vue之el-option下拉框綁定問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Vue?import?from省略后綴/加載文件夾的方法/實(shí)例詳解

    Vue?import?from省略后綴/加載文件夾的方法/實(shí)例詳解

    本文介紹Vue在import時(shí)省略后綴以及import文件夾的方法,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-08-08
  • 詳細(xì)解讀VUE父子組件的使用

    詳細(xì)解讀VUE父子組件的使用

    這篇文章主要介紹了詳細(xì)解讀VUE父子組件的使用,今天來(lái)講一種子父組件深度耦合的方式,使我們不用額外的創(chuàng)建新的組件,也可以達(dá)到一些效果,下面與你們分享一下
    2023-05-05
  • vue跳轉(zhuǎn)頁(yè)面的幾種常用方法代碼示例

    vue跳轉(zhuǎn)頁(yè)面的幾種常用方法代碼示例

    這篇文章主要給大家介紹了關(guān)于vue跳轉(zhuǎn)頁(yè)面的幾種常用方法,vue跳轉(zhuǎn)頁(yè)面有好幾種不同方法,文中通過(guò)代碼將實(shí)現(xiàn)的方法介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用vue具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-10-10
  • 簡(jiǎn)易vuex4核心原理及實(shí)現(xiàn)源碼分析

    簡(jiǎn)易vuex4核心原理及實(shí)現(xiàn)源碼分析

    這篇文章主要為大家介紹了簡(jiǎn)易vuex4核心原理及實(shí)現(xiàn)源碼分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01

最新評(píng)論

清新县| 高陵县| 东海县| 怀集县| 丹巴县| 尼勒克县| 南通市| 清河县| 天祝| 临沧市| 渭源县| 遂溪县| 长岭县| 基隆市| 金川县| 天柱县| 咸丰县| 威宁| 龙山县| 沈阳市| 筠连县| 南雄市| 喀喇沁旗| 弥渡县| 静乐县| 潮州市| 育儿| 上犹县| 怀来县| 偃师市| 贡嘎县| 肇州县| 桐柏县| 鄯善县| 三穗县| 嘉荫县| 聊城市| 宜城市| 渭南市| 张家口市| 安义县|