Vue路由的模塊自動(dòng)化與統(tǒng)一加載實(shí)現(xiàn)
首先呢,我們來(lái)看看一般項(xiàng)目路由是怎么劃分的。
為什么這么劃分呢?如果大項(xiàng)目業(yè)務(wù)非常多,單純的單頁(yè)面很難維護(hù),我們只有這樣規(guī)范化,才能高效率。
模塊自動(dòng)化與統(tǒng)一加載的好處:
規(guī)范化命名(模塊名.業(yè)務(wù)名.vue) 不用每次寫頁(yè)面都要去總路由引入組件接下來(lái),我們實(shí)戰(zhàn)一波。
一、建立項(xiàng)目文件目錄以及文件夾
根據(jù)上面的要求建立,依次在src文件夾下的components文件夾下建立一個(gè)如名叫model1文件夾用于存放功能模塊(可以分別創(chuàng)建多個(gè)模塊文件夾,里面分別存放業(yè)務(wù)代碼)。在該文件夾下創(chuàng)建components文件夾,用于存放組件。創(chuàng)建pages文件夾,用于存放頁(yè)面。創(chuàng)建index.route.js,用于存放模塊路由代碼。
二、編寫模塊路由
在index.route.js文件下編寫,
let router = require.context('./pages',true,/.vue/); // require.context()是webpack提供的方法,這個(gè)方法的第一個(gè)參數(shù)是require的一個(gè)文件夾,第二個(gè)參數(shù)是否遍歷子目錄,第三個(gè)參數(shù)是篩選什么類型的文件。let arr = [];// router是一個(gè)方法,直接調(diào)用會(huì)出錯(cuò),router.keys()是router里的一個(gè)靜態(tài)方法。console.log(router.keys()); // ['./model1.index.vue', './model1.second.vue']router.keys().forEach((key) => { let _keyarr=key.split('.'); // 分割字符串。如'./model1.index.vue' if(key.indexOf('index')!=-1){ // 判斷每一項(xiàng)字符串是否有index,有即首頁(yè) arr.push({ path:_keyarr[1], component:router(key).default, // 相當(dāng)于import meta:{title:_keyarr[1].replace(’/’,’’) // 刪除'/' } }) } else{ arr.push({ path:_keyarr[1]+'/'+_keyarr[2], component:router(key).default, meta:{title:_keyarr[2] } }) }});export default arr
三、編寫總路由
找到router文件夾下的index.js文件
import Vue from ’vue’import Router from ’vue-router’Vue.use(Router)let router = require.context('../components',true,/.route.js/);let arr=[];router.keys().forEach((key) => { arr=arr.concat(router(key).default); // 拼接數(shù)組});export default new Router({ routes: [ ...arr // 展開(kāi)數(shù)組 ]})
這樣就完畢了,源代碼地址
到此這篇關(guān)于Vue路由的模塊自動(dòng)化與統(tǒng)一加載實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Vue路由模塊自動(dòng)化與統(tǒng)一加載內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. asp(vbs)Rs.Open和Conn.Execute的詳解和區(qū)別及&H0001的說(shuō)明2. PHP設(shè)計(jì)模式中工廠模式深入詳解3. CSS hack用法案例詳解4. ThinkPHP5實(shí)現(xiàn)JWT Token認(rèn)證的過(guò)程(親測(cè)可用)5. 用css截取字符的幾種方法詳解(css排版隱藏溢出文本)6. asp中response.write("中文")或者js中文亂碼問(wèn)題7. JSP數(shù)據(jù)交互實(shí)現(xiàn)過(guò)程解析8. PHP session反序列化漏洞超詳細(xì)講解9. ASP 信息提示函數(shù)并作返回或者轉(zhuǎn)向10. ASP+ajax實(shí)現(xiàn)頂一下、踩一下同支持與反對(duì)的實(shí)現(xiàn)代碼
