高频组件你还在import吗?太low了
2020/4/9 11:01:44
本文主要是介绍高频组件你还在import吗?太low了,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
对于高频组件你还在这样引入么
使用require.context实现前端工程自动化快速应用到项目中
require.context是什么?
一个webpack的api,通过执行require.context函数获取一个特定的上下文,主要用来实现自动化导入模块,在前端工程中,如果遇到从一个文件夹引入很多模块的情况,可以使用这个api,它会遍历文件夹中的指定文件,然后自动导入,使得不需要每次显式的调用import导入模块
分析require.context
require.context函数接受三个参数
- directory {String} -读取文件的路径
- useSubdirectories {Boolean} -是否遍历文件的子目录
- regExp {RegExp} -匹配文件的正则
语法: require.context(directory, useSubdirectories = false, regExp = /^.//); 复制代码
在components下的index.js中require.context('./common', false, /\.vue$/); 复制代码
可以看到执行了keys()方法返回了一个由匹配文件的文件名组成的数组
我们注册组件是需要Vue.component(组件名,options) options是个对象 { data:function(){}, template:'<button>点击计算点击次数</button>' } 复制代码
说明 changeStr将字符串首字母大写(组件注册一般首字母大写)// import Demo from '@/components/demo'
其中 let config = requireComponent(fileName)得到的是
我们在main.js中
最后全局注入组件完成
这些组件随处可用,无需再import,传值什么都也是正常的// import Vue from "vue"; function changeStr(str) { //首字母大写 return str.charAt(0).toUpperCase() + str.slice(1); } //找到上一级common目录下的.vue结尾的所有文件 const requireComponent = require.context("./common", false, /\.vue$/); console.log(requireComponent.keys()); //["./child1.vue", "./child2.vue"] const install = (Vue) => { requireComponent.keys().forEach((fileName) => { let config = requireComponent(fileName); let componentName = changeStr( fileName.replace(/^\.\//, "").replace(/\.\w+$/, "") ); console.log(config); // console.log(componentName); //Child1 Child2 Vue.component(componentName, config.default || config); }); }; export default { install, }; 复制代码
这篇关于高频组件你还在import吗?太low了的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-06小米11i印度快充版ROM合集:极致体验,超越期待
- 2024-10-06【ROM下载】小米11i 5G 印度版系统, 疾速跃迁,定义新速度
- 2024-10-06【ROM下载】小米 11 青春活力版,青春无极限,活力全开
- 2024-10-05小米13T Pro系统合集:性能与摄影的极致融合,值得你升级的系统ROM
- 2024-10-01基于Python+Vue开发的医院门诊预约挂号系统
- 2024-10-01基于Python+Vue开发的旅游景区管理系统
- 2024-10-01RestfulAPI入门指南:打造简单易懂的API接口
- 2024-10-01初学者指南:了解和使用Server Action
- 2024-10-01Server Component入门指南:搭建与配置详解
- 2024-10-01React 中使用 useRequest 实现数据请求