init:全局注册components文件夹下的公共组件初始化

This commit is contained in:
talktao 2022-03-18 22:35:18 +08:00
parent d37553ff2c
commit 56bae1408e

26
src/plugins/components.ts Normal file
View File

@ -0,0 +1,26 @@
const modules = import.meta.globEager('../components/*.vue')
export default {
install(app) {
Object.keys(modules).forEach(componentPath => {
let splitPart1 = componentPath.split("/")
let componentName = splitPart1[splitPart1.length - 1].split(".vue")[0]
// 获取所有组件的实例对象,它是个数组
let modulesData = Object.values(modules).map((v) => v.default)
// 过滤出当前组件的实例对象与注册组件匹配一致
let curComponent = modulesData.filter(
item=>item.__file.split("/")[item.__file.split("/").length-1].split(".vue")[0] === componentName
)[0]
app.component(componentName, curComponent);
})
}
}