這篇文章給大家分享的是有關(guān)vue移動(dòng)端項(xiàng)目代碼拆分的示例分析的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。
從網(wǎng)站建設(shè)到定制行業(yè)解決方案,為提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)服務(wù)體系,各種行業(yè)企業(yè)客戶提供網(wǎng)站建設(shè)解決方案,助力業(yè)務(wù)快速發(fā)展。成都創(chuàng)新互聯(lián)公司將不斷加快創(chuàng)新步伐,提供優(yōu)質(zhì)的建站服務(wù)。首先代碼拆分應(yīng)該保證本地開發(fā)的時(shí)候只有一套代碼,提取所有公共頁(yè)面,并且分別提取小程序和app的獨(dú)立JS方法,避免開發(fā)完小程序端vue,然后粘貼復(fù)制到App端的繁瑣操作。
直接看圖最清晰,拆分前目錄結(jié)構(gòu):
拆分后目錄結(jié)構(gòu):
拆分前項(xiàng)目目錄結(jié)構(gòu)
拆分后項(xiàng)目目錄結(jié)構(gòu)
目錄拆分好之后,開始拆分代碼。由于部署到生產(chǎn)環(huán)境的時(shí)候只能App端部署App端,小程序端部署小程序端,那么在本地開發(fā)過(guò)程中為了調(diào)試不同端的頁(yè)面就需要進(jìn)行路由配置,所以對(duì)路由配置文件route.list.js做了修改:
拆分代碼前,route.list.js中將所有頁(yè)面JS文件的相對(duì)路徑放在一個(gè)數(shù)組里:
define( [ ‘../xxx/xxx/user.js', ‘../xxx/xxx/goods.js', … … ] )
拆分后,route.list.js中按public、mobile_app、wechat_mini 分別定義數(shù)組,這樣如果現(xiàn)在正在開發(fā)小程序端的vue,那么則將public和wechat_mini的數(shù)組合并到一起,開發(fā)app端的vue則將public和moblie_app的數(shù)組合并到一起,合并數(shù)組使用ES6擴(kuò)展運(yùn)算符(…)。
var public_goods = []; var mini_goods = []; var app_goods = []; var fun = (isWechatMini) => { if(isWechatMini){ return [ …public_goods, …mini_goods ] } else { return [ …public_goods, …app_goods ] } } define( fun(true) )
將公共部分和獨(dú)立部分的頁(yè)面拆分之后,進(jìn)一步分析代碼:App端和小程序端相互獨(dú)立的大多是支付功能,分享功能等涉及到需要原生處理的地方,并且會(huì)在多個(gè)頁(yè)面,多個(gè)業(yè)務(wù)中出現(xiàn),那么就將App獨(dú)立的vue代碼拆分到一個(gè)公共JS中(app-common.js),將小程序獨(dú)立的vue代碼拆分到一個(gè)公共JS中(mini-common.js),在需要的頁(yè)面中引入即可。就商品購(gòu)買支付功能為例:
拆分前:
define([‘vue', ‘a(chǎn)xios', ‘text!/File/Html/goods/goodsPay.html'], (vue, axios, Template) => { var App = { data() { }, template: Template, mounted() { }, methods: { pay(){ if(isWechatMini){ //這里是小程序支付 } else { //這里是App支付 } } } }; return{ app: App }; });
業(yè)務(wù)復(fù)雜的情況下,會(huì)有多層if else,代碼太冗余。
拆分后:
小程序端的商品支付購(gòu)買頁(yè)面:
define([‘vue', ‘a(chǎn)xios', ‘text!/File/Html/mini/goods/goodsPay.html', ‘mini-common'], (vue, axios, Template, common) => { var App = { data() { }, template: Template, mounted() { }, methods: { pay(){ //調(diào)用mini-common中定義的支付方法 common.pay(); } } }; return{ app: App }; });
App端的商品購(gòu)買支付頁(yè)面只需要將引入的JS換成app-common即可:
define([‘vue', ‘a(chǎn)xios', ‘text!/File/Html/app/goods/goodsPay.html', ‘a(chǎn)pp-common'], (vue, axios, Template, common) => { var App = { data() { }, template: Template, mounted() { }, methods: { pay(){ //調(diào)用app-common中定義的支付方法 common.pay(); } } }; return{ app: App }; });
本地開發(fā)完后,部署到服務(wù)器只需要將public目錄下和wechat_mini下的文件復(fù)制粘貼到打包工具打包即是小程序端的代碼,public和mobile_app打包即是app端的代碼。
感謝各位的閱讀!關(guān)于“vue移動(dòng)端項(xiàng)目代碼拆分的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!
當(dāng)前題目:vue移動(dòng)端項(xiàng)目代碼拆分的示例分析-創(chuàng)新互聯(lián)
當(dāng)前URL:http://muchs.cn/article16/dpchdg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、搜索引擎優(yōu)化、建站公司、云服務(wù)器、虛擬主機(jī)、域名注冊(cè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容