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臃肿的资料请关注脚本之家其它相关文章!
相关文章
Vue-router不允许导航到当前位置(/path)错误原因以及修复方式
本文主要介绍了Vue-router不允许导航到当前位置(/path)错误原因以及修复方式,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2021-09-09解决vue-cli单页面手机应用input点击手机端虚拟键盘弹出盖住input问题
今天小编就为大家分享一篇解决vue-cli单页面手机应用input点击手机端虚拟键盘弹出盖住input问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2018-08-08如何利用vue+vue-router+elementUI实现简易通讯录
这篇文章主要介绍了如何利用vue+vue-router+elementUI实现简易通讯录,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2019-05-05vue-router中的hash和history两种模式的区别
大家都知道vue-router有两种模式,hash模式和history模式,这里来谈谈vue-router中的hash和history两种模式的区别。感兴趣的朋友一起看看吧2018-07-07vue+canvas如何实现根据数据展示不同高度,不同渐变颜色的长方体效果
这篇文章主要介绍了vue+canvas如何实现根据数据展示不同高度,不同渐变颜色的长方体效果,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2024-09-09
最新评论