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

简介: 【10月更文挑战第6天】

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:要匹配文件的正则
2.1 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)
})
目录
相关文章
|
1天前
|
缓存 数据库
读写锁和互斥锁的区别
【10月更文挑战第6天】
11 1
|
2月前
|
JavaScript 前端开发
js实现数据的双向绑定
js实现数据的双向绑定
115 59
|
2天前
|
机器学习/深度学习 TensorFlow 算法框架/工具
使用Python实现深度学习模型:智能质量检测与控制
使用Python实现深度学习模型:智能质量检测与控制 【10月更文挑战第8天】
81 62
使用Python实现深度学习模型:智能质量检测与控制
|
2天前
|
Docker 容器
docker中默认桥接网络
【10月更文挑战第7天】
80 62
|
1天前
|
Java 开发者
【编程进阶知识】《Java 文件复制魔法:FileReader/FileWriter 的奇妙之旅》
本文深入探讨了如何使用 Java 中的 FileReader 和 FileWriter 进行文件复制操作,包括按字符和字符数组复制。通过详细讲解、代码示例和流程图,帮助读者掌握这一重要技能,提升 Java 编程能力。适合初学者和进阶开发者阅读。
99 60
|
6天前
|
存储 监控 安全
服务器维护是确保服务器稳定运行、数据安全和性能优化的重要过程
【10月更文挑战第4天】服务器维护是确保服务器稳定运行、数据安全和性能优化的重要过程
100 65
|
1天前
|
供应链 物联网 区块链
新技术潮流之巅:区块链、物联网与虚拟现实的融合与创新
【10月更文挑战第9天】在数字化浪潮中,新兴技术如区块链、物联网(IoT)和虚拟现实(VR)正逐步渗透至我们生活的方方面面。本文将深入探讨这些技术的发展趋势,以及它们如何相互交织,共同塑造未来。我们将从技术原理出发,分析其在金融、医疗、教育和娱乐等行业的应用实例,并展望未来可能带来的变革。通过实际案例,我们将揭示这些技术如何提升效率、增强体验,并推动社会进步。
|
1天前
|
存储 Java
【编程基础知识】《Java 起航指南:配置 Java 环境变量的秘籍与奥秘》
本文详细介绍了如何配置 Java 环境变量及其重要性,通过具体步骤、代码示例和流程图,帮助初学者轻松掌握 Java 环境变量的设置,为 Java 编程打下坚实基础。关键词:Java、环境变量、配置方法、编程基础。
97 57
|
6天前
|
存储 监控 安全
Web服务器的维护
【10月更文挑战第4天】Web服务器的维护
91 62
|
3天前
|
前端开发 UED 容器
使用 Flex 布局实现垂直居中效果
【10月更文挑战第7天】
79 57