Vue:利用require.context自动注册组件

简介: Vue:利用require.context自动注册组件

Webpack中有一个函数

require.context(directory, useSubdirectories = false, regExp = /^\.\//)

参数:


directory:要搜索的文件夹目录

useSubdirectories:是否还应该搜索它的子目录

regExp:一个匹配文件的正则表达式

自动注册Vue组件(适用于高频组件)

//  global.js文件 Vue.use(global);
function changeStr(str) {
  return str.charAt(0).toUpperCase() + str.slice(1);
}
// 查找同级目录下以vue结尾的组件
const requireComponent = require.context("./", false, /\.vue$/);
// 对外暴露install方法
const install = (Vue) => {
  requireComponent.keys().forEach((fileName) => {
    let config = requireComponent(fileName);
    console.log(config); // ./child1.vue 然后用正则拿到child1
    let componentName = changeStr(
      fileName.replace(/^\.\//, "").replace(/\.\w+$/, "")
    );
    Vue.component(componentName, config.default || config);
  });
};
export default {
  // 对外暴露install方法
  install,
};

main.js 中注册

Vue.use(global);
相关文章
|
3月前
|
人工智能 JavaScript 算法
Vue 中 key 属性的深入解析:改变 key 导致组件销毁与重建
Vue 中 key 属性的深入解析:改变 key 导致组件销毁与重建
491 0
|
3月前
|
JavaScript UED
用组件懒加载优化Vue应用性能
用组件懒加载优化Vue应用性能
|
3月前
|
JavaScript 前端开发 UED
Vue 表情包输入组件实现代码及详细开发流程解析
这是一篇关于 Vue 表情包输入组件的使用方法与封装指南的文章。通过安装依赖、全局注册和局部使用,可以快速集成表情包功能到 Vue 项目中。文章还详细介绍了组件的封装实现、高级配置(如自定义表情列表、主题定制、动画效果和懒加载)以及完整集成示例。开发者可根据需求扩展功能,例如 GIF 搜索或自定义表情上传,提升用户体验。资源链接提供进一步学习材料。
185 1
|
JavaScript
Vue的非父子组件之间传值
全局事件总线 一种组件间通信的方式,适用于任意组件间通信
182 0
|
缓存 JavaScript 前端开发
Vue Props、Slot、v-once、非父子组件间的传值....
Vue Props、Slot、v-once、非父子组件间的传值....
153 0
|
JavaScript
Vue中父子组件传值
先在⽗组件中给⼦组件的⾃定义属性绑定⼀个⽗组件的变量
147 0
|
JavaScript
vue 组件传值
vue 组件传值
138 0
|
JavaScript
vue父子组件传值
vue父子组件传值
|
JavaScript
vue兄弟组件传值 方便快捷
vue兄弟组件传值 方便快捷
|
JavaScript
Vue父子组件传值(porvide+inject实现组件通信)
如果我们需要把父组件的值传递给子组件,而且子组件可能存在层层嵌套,那么就可以使用provide+inject的方法来实现组件之间的通信
240 0
Vue父子组件传值(porvide+inject实现组件通信)