摘要:簡(jiǎn)介以前文件的組織是以以及這些文件進(jìn)行垂直分割的,而中我們以組件為單位構(gòu)造,因此,最好的方式是把這些不同的類型的文件與組件相關(guān)的部分,圍繞組件組合成一個(gè)文件即文件,我稱其為水平分割。一個(gè)例子這里是官網(wǎng)上一個(gè)單文件多層組件的示例。
簡(jiǎn)介
以前文件的組織是以.HTML、.js以及.css/less/scss這些文件進(jìn)行垂直分割的,而Vue中我們以組件為單位構(gòu)造,因此,最好的方式是把這些不同的類型的文件與組件相關(guān)的部分,圍繞組件組合成一個(gè)文件即.vue文件,我稱其為水平分割。另外,在中寫模板也比原來(lái)的字符串形式的模板方便的多。
在webpack里面要加載*.vue文件,需要下面兩個(gè)包
$npm install vue-loader vue-template-compiler
webpack添加Loader配置
{ test: /.vue$/, use: [ "vue-loader" ] } ...... resolve: { extensions: [".js", ".vue"], alias: { "Vue": "vue/dist/vue.js" } }
webpack的resolve選項(xiàng),用來(lái)配置解析import、require中的路徑的細(xì)節(jié),extensions就是在某文件沒(méi)寫擴(kuò)展名時(shí),默認(rèn)的尋找擴(kuò)展名。如import App from "./App"中,沒(méi)有App.js就找App.vue。alias是給路徑起個(gè)別名,方便一點(diǎn),如import Vue from "Vue"即表示import Vue from "vue/dist/vue.js"
然后就可以編寫代碼了
{{heading}}
//index.js import Vue from "Vue" import App from "./App" new Vue({ el: "#app-1", template: "", components: { App }, //render: h => h(App) })
文件App.vue即所謂的單文件組件,我們看到了模板、樣式和JS是如何水平分割的。
還有要注意的是,頁(yè)面原始的將會(huì)被組件替換掉。
模板寫在如下內(nèi)容中:
JS寫在如下內(nèi)容中:
css寫在如下內(nèi)容中:
我們?cè)趇ndex.js中引用這個(gè)App.vue文件組件,這里讓它作為實(shí)例#app-1的子組件引入,也可以使用渲染函數(shù)使用它。
一個(gè)例子這里是官網(wǎng)上一個(gè)單文件多層組件的示例。App2.vue
在子組件BaseInputText.vue中,有如下代碼
這里在無(wú)參的v-on中綁定了一個(gè)事件對(duì)象,該對(duì)象中除了有必須的input事件,并與this.$listeners合并,this.$listeners包含了該子組件的所有下層組件(如果有的話)中的自定義事件。
就像示例中所做的那樣,屬性和方法都集中在上層的組件中,這里是TodoList.vue組件,通過(guò)Props下發(fā)數(shù)據(jù)到子組件。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/93829.html
摘要:兩個(gè)同級(jí)組件之間傳遞數(shù)據(jù),通過(guò)傳遞數(shù)據(jù)。準(zhǔn)備工作,我新建了個(gè)文件,分別是實(shí)例根組件,包含和組件的父組件,的同級(jí)組件父組件向子組件傳遞數(shù)據(jù),通過(guò)傳遞數(shù)據(jù)。 ??Vue 的單文件組件在使用 Vue 時(shí)非常常用,所以我們也會(huì)經(jīng)常遇到組件之間需要傳遞數(shù)據(jù)的時(shí)候,大致分為三種情況: 父組件向子組件傳遞數(shù)據(jù),通過(guò) props 傳遞數(shù)據(jù)。 子組件向父組件傳遞數(shù)據(jù),通過(guò) events 傳遞數(shù)據(jù)。 兩...
摘要:但是,面對(duì)辣么多的配置文件,還是從開(kāi)始自己來(lái)吧,畢竟我只想打包一個(gè)組件。這里想一下我們的需求,我們想要打包一個(gè)組件,使用,根據(jù)上面的說(shuō)明,不難想到還應(yīng)該需要一個(gè)可以用來(lái)識(shí)別并轉(zhuǎn)換文件,一句話,就是把按下面格式的編寫的組件轉(zhuǎn)換為模塊。 對(duì)于vue單文件組件的使用,我們知道使用vue-cli可以快速生成項(xiàng)目結(jié)構(gòu),進(jìn)行.vue單文件組件的編寫,使用 npm run build命令會(huì)從main...
摘要:但是,面對(duì)辣么多的配置文件,還是從開(kāi)始自己來(lái)吧,畢竟我只想打包一個(gè)組件。這里想一下我們的需求,我們想要打包一個(gè)組件,使用,根據(jù)上面的說(shuō)明,不難想到還應(yīng)該需要一個(gè)可以用來(lái)識(shí)別并轉(zhuǎn)換文件,一句話,就是把按下面格式的編寫的組件轉(zhuǎn)換為模塊。 對(duì)于vue單文件組件的使用,我們知道使用vue-cli可以快速生成項(xiàng)目結(jié)構(gòu),進(jìn)行.vue單文件組件的編寫,使用 npm run build命令會(huì)從main...
摘要:但是,面對(duì)辣么多的配置文件,還是從開(kāi)始自己來(lái)吧,畢竟我只想打包一個(gè)組件。這里想一下我們的需求,我們想要打包一個(gè)組件,使用,根據(jù)上面的說(shuō)明,不難想到還應(yīng)該需要一個(gè)可以用來(lái)識(shí)別并轉(zhuǎn)換文件,一句話,就是把按下面格式的編寫的組件轉(zhuǎn)換為模塊。 對(duì)于vue單文件組件的使用,我們知道使用vue-cli可以快速生成項(xiàng)目結(jié)構(gòu),進(jìn)行.vue單文件組件的編寫,使用 npm run build命令會(huì)從main...
摘要:本文以及后面相應(yīng)文章,主要是相關(guān)技術(shù)棧來(lái)快速的實(shí)現(xiàn)單頁(yè)應(yīng)用開(kāi)發(fā)。原文出處其他使用快速開(kāi)發(fā)單頁(yè)應(yīng)用主體結(jié)構(gòu)使用快速開(kāi)發(fā)單頁(yè)應(yīng)用使用快速開(kāi)發(fā)單頁(yè)應(yīng)用登錄頁(yè)面使用快速開(kāi)發(fā)單頁(yè)應(yīng)用功能組件與路由組件通信 本文所涉及代碼全在vue-cnode 單頁(yè)應(yīng)用,即在一個(gè)頁(yè)面集成系統(tǒng)中所有功能,整個(gè)應(yīng)用只有一個(gè)頁(yè)面。因?yàn)槁酚傻目刂圃谇岸?,單?yè)面應(yīng)用在頁(yè)面切換時(shí)比傳統(tǒng)頁(yè)面更快,從而在前端體驗(yàn)更好。 將邏輯從...
閱讀 715·2021-11-18 10:02
閱讀 3605·2021-09-02 10:21
閱讀 1752·2021-08-27 16:16
閱讀 2065·2019-08-30 15:56
閱讀 2393·2019-08-29 16:53
閱讀 1380·2019-08-29 11:18
閱讀 2960·2019-08-26 10:33
閱讀 2648·2019-08-23 18:34