vue 父组件导入一个文件夹下的多个子组件 有什么简便写法
时间: 2023-11-06 19:04:34 浏览: 96
vue父组件向子组件传递多个数据的实例
5星 · 资源好评率100%
可以使用 `require.context` 方法来实现一次性导入文件夹下的多个子组件,具体操作如下:
1. 在父组件中导入 `require.context` 方法:
```
const requireComponent = require.context(
// 组件目录的相对路径
'./components',
// 是否查询子目录
false,
// 匹配基础组件文件名的正则表达式
/Base[A-Z]\w+\.(vue|js)$/
)
```
2. 使用 `requireComponent.keys()` 方法获取到所有匹配到的组件文件路径,再通过 `map` 方法遍历并导入这些组件:
```
export default {
components: {
// 自动导入components文件夹下所有Base开头的.vue或.js文件
...requireComponent.keys().map(fileName => {
// 获取组件配置
const componentConfig = requireComponent(fileName)
// 获取组件的 PascalCase 命名
const componentName = upperFirst(
camelCase(
// 剥去文件名开头的 `./` 和结尾的扩展名
fileName.replace(/^\.\/(.*)\.\w+$/, '$1')
)
)
// 全局注册组件
return {
[componentName]: componentConfig.default || componentConfig
}
}).reduce((pre, cur) => Object.assign({}, pre, cur), {})
}
}
```
这样就可以方便地一次性导入文件夹下的多个子组件了。
阅读全文