关于优化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)
})
相关文章
|
6月前
|
缓存 监控 JavaScript
优化策略:提升Vue应用的性能和加载速度
【4月更文挑战第23天】本文探讨了优化Vue应用的策略,包括代码层面(精简代码、组件拆分、计算属性和侦听器)、路由懒加载、数据懒加载与防抖节流、图片和资源压缩及CDN、缓存机制的利用,以及使用Vue Devtools和性能分析工具进行监控与调试。通过这些方法,可以提升Vue应用的性能和加载速度,确保用户获得流畅体验。
199 1
|
2月前
|
前端开发
Vue3基础(十si)___引入Element-plus___Vant___全局引入___按需引入___测试打包大小
本文介绍了如何在Vue3项目中引入Element-plus和Vant UI库,包括全局引入和按需引入的方法,并通过配置vite.config.js实现按需引入,最后对比了不同引入方式对项目打包大小的影响。
57 0
Vue3基础(十si)___引入Element-plus___Vant___全局引入___按需引入___测试打包大小
|
3月前
|
JavaScript C++
以 Vue 3 项目为例,你是否经常遇到 import 语句顺序混乱的问题?要想解决它其实很容易!
以 Vue 3 项目为例,你是否经常遇到 import 语句顺序混乱的问题?要想解决它其实很容易!
|
4月前
|
缓存 监控 JavaScript
Vue项目中优化性能的方法
Vue项目中优化性能的方法
|
3月前
|
资源调度 JavaScript 前端开发
如何大幅减少 Vue.js 中的包大小和加载时间,提升用户体验!
如何大幅减少 Vue.js 中的包大小和加载时间,提升用户体验!
|
JavaScript
降低vue-router版本的两种方法
降低vue-router版本的两种方法
612 2
|
前端开发 JavaScript 测试技术
|
前端开发 JavaScript
如何编写神奇的「插件机制」,优化基于 Antd Table 封装表格的混乱代码
最近在一个业务需求中,我通过在 Antd Table 提供的回调函数等机制中编写代码,实现了这些功能: ✨ 每个层级缩进指示线 ✨ 远程懒加载子节点 ✨ 每个层级支持分页
|
JavaScript 前端开发
JS【数组合并】的性能差异对比
数组合并可以说是我们在操作数组中最常遇到的场景之一! 本篇将简要分析三种数组合并的方法,并带来它们的性能差异分析~