Vue路由的模塊自動(dòng)化與統(tǒng)一加載實(shí)現(xiàn)
首先呢,我們來看看一般項(xiàng)目路由是怎么劃分的。

為什么這么劃分呢?如果大項(xiàng)目業(yè)務(wù)非常多,單純的單頁面很難維護(hù),我們只有這樣規(guī)范化,才能高效率。
模塊自動(dòng)化與統(tǒng)一加載的好處:
- 規(guī)范化命名(模塊名.業(yè)務(wù)名.vue)
- 不用每次寫頁面都要去總路由引入組件
接下來,我們實(shí)戰(zhàn)一波。
一、建立項(xiàng)目文件目錄以及文件夾
根據(jù)上面的要求建立,依次在src文件夾下的components文件夾下建立一個(gè)如名叫model1文件夾用于存放功能模塊(可以分別創(chuàng)建多個(gè)模塊文件夾,里面分別存放業(yè)務(wù)代碼)。在該文件夾下創(chuàng)建components文件夾,用于存放組件。創(chuàng)建pages文件夾,用于存放頁面。創(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,有即首頁
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 // 展開數(shù)組
]
})
這樣就完畢了,源代碼地址
到此這篇關(guān)于Vue路由的模塊自動(dòng)化與統(tǒng)一加載實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Vue路由模塊自動(dòng)化與統(tǒng)一加載內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue項(xiàng)目打包部署_nginx代理訪問方法詳解
今天小編就為大家分享一篇vue項(xiàng)目打包部署_nginx代理訪問方法詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-09-09
Vue3實(shí)現(xiàn)簡約型側(cè)邊欄的示例代碼
本文主要介紹了Vue3實(shí)現(xiàn)簡約型側(cè)邊欄的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07
Vue實(shí)現(xiàn)base64編碼圖片間的切換功能
這篇文章主要介紹了Vue實(shí)現(xiàn)base64編碼圖片間的切換功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-12-12
vue自適應(yīng)布局postcss-px2rem詳解
這篇文章主要介紹了vue自適應(yīng)布局(postcss-px2rem)的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2022-05-05
Vue?el-menu?左側(cè)菜單導(dǎo)航功能的實(shí)現(xiàn)
這篇文章主要介紹了Vue?el-menu?左側(cè)菜單導(dǎo)航功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08

