Vue-router优化import引入过多导致index文件臃肿问题
作者:koi_li
这篇文章主要为大家介绍了Vue-router优化import引入过多导致index文件臃肿问题解决,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
需求
当我们在开发过程中,需要引入很多的文件,但是又不想每个文件都依次导入的时候 就会想有没有一个方法可以批量导入 require.context方法就可以解决这个问题.(仅限于webpack)
function importAll (require) { console.log(require.keys(),'keys') // 此处是由多个文件路径组成的数组 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') // 此处是由多个文件路径组成的数组 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()返回一个数组,数组每个元素传入 require.context方法中,就可以到处相应的文件
借鉴了Store 的自动化引入
当然此方法也可以应用到别的文件
在 main.js 中引入大量公共组件
import Vue from 'vue' // 自定义组件 const requireComponents = require.context('../views/components', true, /\.vue/) // 打印结果 // 遍历出每个组件的路径 requireComponents.keys().forEach(fileName => { // 组件实例 const reqCom = requireComponents(fileName) // 截取路径作为组件名 const reqComName =reqCom.name|| fileName.replace(/\.\/(.*)\.vue/,'$1') // 组件挂载 Vue.component(reqComName, reqCom.default || reqCom) })
今天的分享就到这里 希望能对你有所帮助。
以上就是Vue-router优化import引入过多导致index文件臃肿问题的详细内容,更多关于Vue-routert引入导致index臃肿的资料请关注脚本之家其它相关文章!