Vue路由的模塊自動化與統(tǒng)一加載實現(xiàn)
首先呢,我們來看看一般項目路由是怎么劃分的。
為什么這么劃分呢?如果大項目業(yè)務非常多,單純的單頁面很難維護,我們只有這樣規(guī)范化,才能高效率。
模塊自動化與統(tǒng)一加載的好處:
- 規(guī)范化命名(模塊名.業(yè)務名.vue)
- 不用每次寫頁面都要去總路由引入組件
接下來,我們實戰(zhàn)一波。
一、建立項目文件目錄以及文件夾
根據(jù)上面的要求建立,依次在src文件夾下的components文件夾下建立一個如名叫model1文件夾用于存放功能模塊(可以分別創(chuàng)建多個模塊文件夾,里面分別存放業(yè)務代碼)。在該文件夾下創(chuàng)建components文件夾
,用于存放組件。創(chuàng)建pages文件夾
,用于存放頁面。創(chuàng)建index.route.js
,用于存放模塊路由代碼。
二、編寫模塊路由
在index.route.js
文件下編寫,
let router = require.context("./pages",true,/.vue/); // require.context()是webpack提供的方法,這個方法的第一個參數(shù)是require的一個文件夾,第二個參數(shù)是否遍歷子目錄,第三個參數(shù)是篩選什么類型的文件。 let arr = []; // router是一個方法,直接調用會出錯,router.keys()是router里的一個靜態(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){ // 判斷每一項字符串是否有index,有即首頁 arr.push({ path:_keyarr[1], component:router(key).default, // 相當于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ù)組 ] })
這樣就完畢了,源代碼地址
到此這篇關于Vue路由的模塊自動化與統(tǒng)一加載實現(xiàn)的文章就介紹到這了,更多相關Vue路由模塊自動化與統(tǒng)一加載內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
vue.js動態(tài)數(shù)據(jù)綁定學習筆記
這篇文章主要為大家詳細介紹了vue.js動態(tài)數(shù)據(jù)綁定學習筆記,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-05-05vue3.x使用swiperUI動態(tài)加載圖片失敗的解決方法
這篇文章主要為大家詳細介紹了vue3.x使用swiperUI動態(tài)加載圖片失敗的解決方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-07-07Vue中使用vue-i18插件實現(xiàn)多語言切換功能
在基于vue-cli項目開發(fā)過程中,多語言切換功能可使用vue-i18插件,這篇文章分步驟給大家介紹了Vue中使用vue-i18插件實現(xiàn)多語言切換功能,感興趣的朋友一起看看吧2018-04-04vue/cli3.0腳手架部署到nginx時頁面空白的問題及解決
這篇文章主要介紹了vue/cli3.0腳手架部署到nginx時頁面空白的問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-10-10keep-Alive搭配vue-router實現(xiàn)緩存頁面效果的示例代碼
這篇文章主要介紹了keep-Alive搭配vue-router實現(xiàn)緩存頁面效果,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-06-06