Vue-router優(yōu)化import引入過(guò)多導(dǎo)致index文件臃腫問(wèn)題
需求
當(dāng)我們?cè)陂_(kāi)發(fā)過(guò)程中,需要引入很多的文件,但是又不想每個(gè)文件都依次導(dǎo)入的時(shí)候 就會(huì)想有沒(méi)有一個(gè)方法可以批量導(dǎo)入 require.context方法就可以解決這個(gè)問(wèn)題.(僅限于webpack)
function importAll (require) { console.log(require.keys(),'keys') // 此處是由多個(gè)文件路徑組成的數(shù)組 require.keys().forEach(item=>{ routerAll.push(require(item).default) }) console.log(routerAll,'routerALL') // 將文件的 export default 暴露出去 } importAll(require.context('./',true,/\.js/))let routerAll = []; function importAll (require) { console.log(require.keys(),'keys') // 此處是由多個(gè)文件路徑組成的數(shù)組 require.keys().forEach(item=>{ routerAll.push(require(item).default) }) console.log(routerAll,'routerALL') } importAll(require.context('./',true,/\.js/))
代碼詳解
require.context
require.context(deirectory,useSubdirectories,regExp)
1.directory:要查找的文件路徑(String)
2.userSubdirectories:是否查找子目錄(Boolean)
3.regExp:要匹配文件的正則
require.context.keys()
const ctx = require.context('./components/', true, /\.js$/) console.log(ctx.keys()) // ["./A.js", "./B.js", "./C.js", "./D.js"]
require.context.keys()返回一個(gè)數(shù)組,數(shù)組每個(gè)元素傳入 require.context方法中,就可以到處相應(yīng)的文件
借鑒了Store 的自動(dòng)化引入
當(dāng)然此方法也可以應(yīng)用到別的文件
在 main.js 中引入大量公共組件
import Vue from 'vue' // 自定義組件 const requireComponents = require.context('../views/components', true, /\.vue/) // 打印結(jié)果 // 遍歷出每個(gè)組件的路徑 requireComponents.keys().forEach(fileName => { // 組件實(shí)例 const reqCom = requireComponents(fileName) // 截取路徑作為組件名 const reqComName =reqCom.name|| fileName.replace(/\.\/(.*)\.vue/,'$1') // 組件掛載 Vue.component(reqComName, reqCom.default || reqCom) })
今天的分享就到這里 希望能對(duì)你有所幫助。
以上就是Vue-router優(yōu)化import引入過(guò)多導(dǎo)致index文件臃腫問(wèn)題的詳細(xì)內(nèi)容,更多關(guān)于Vue-routert引入導(dǎo)致index臃腫的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
vue-cli3 項(xiàng)目?jī)?yōu)化之通過(guò) node 自動(dòng)生成組件模板 generate View、Component
這篇文章主要介紹了vue-cli3 項(xiàng)目?jī)?yōu)化之通過(guò) node 自動(dòng)生成組件模板 generate View、Component的相關(guān)知識(shí),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-04-04vue 監(jiān)聽(tīng)鍵盤(pán)回車事件詳解 @keyup.enter || @keyup.enter.native
今天小編就為大家分享一篇vue 監(jiān)聽(tīng)鍵盤(pán)回車事件詳解 @keyup.enter || @keyup.enter.native,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-08-08

Vue+FormData+axios實(shí)現(xiàn)圖片上傳功能

Vue實(shí)現(xiàn)用戶自定義字段顯示數(shù)據(jù)的方法