关于优化Vue-router优化import引入过多导致index文件过于臃肿

简介: 关于优化Vue-router优化import引入过多导致index文件过于臃肿

1.需求

当我们在开发过程中,需要引入很多的文件,但是又不想每个文件都依次导入的时候 就会想有没有一个方法可以批量导入 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/))

2.代码详解

1.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)
})
相关文章
element-ui下拉框el-select多选出现滚动条闪现
弹窗组件中放置了el-select下拉框组件,多选项较多时,聚焦弹出下拉选择框时,下方会出现一个横向滚动条闪现一下,虽然不影响使用,但是作为一个追求完美的码农肯定是受不了
|
网络协议 Android开发 Python
Android 抓包工具r0capture使用
Android 抓包工具r0capture使用
1592 1
|
JavaScript 前端开发 API
Vue Router【详解】含路由配置、路由定义、路由跳转、路由传参、自动注册路由、路由守卫、页面滚动、监听路由、$route、$router、路由过渡动画等
Vue Router【详解】含路由配置、路由定义、路由跳转、路由传参、自动注册路由、路由守卫、页面滚动、监听路由、$route、$router、路由过渡动画等
3031 1
|
JavaScript C++
以 Vue 3 项目为例,你是否经常遇到 import 语句顺序混乱的问题?要想解决它其实很容易!
以 Vue 3 项目为例,你是否经常遇到 import 语句顺序混乱的问题?要想解决它其实很容易!
|
弹性计算 关系型数据库 MySQL
阿里云ECS使用docker搭建mysql服务
阿里云ECS使用docker搭建mysql服务
656 1
echarts图表怎样实现刷新功能?
echarts图表怎样实现刷新功能?
|
小程序 UED 开发者
小程序的生命周期函数
小程序的生命周期函数
437 1
|
Web App开发 缓存 监控
测开必备,推荐几款前端性能测试工具、神器
今天,就给大家介绍几款前端性能测试分析工具,结合性能测试工具,实现通过量化的方式测试网站中诸如首字节加载时间(time to first byte)或者渲染时间等表现。其中有些工具还会检查资源是否被缓存,多个 CSS 或 JS 文件是否值得合并,最后自动给出前端性能优化改进建议报告。
2809 0
测开必备,推荐几款前端性能测试工具、神器
|
SQL 存储 数据库
MSSQL数据库性能调优实战:索引、查询与并发控制的深度剖析
在数据库管理领域,Microsoft SQL Server(MSSQL)的性能调优是保障业务高效运行的核心任务
|
移动开发 JavaScript 程序员
程序员必知:vue播放video插件vue
程序员必知:vue播放video插件vue
710 0