批量注册自定义组件 vue3
src/components/index.js
// import XtxSkeleton from './xtx-skeleton'
// import XtxCarousel from './xtx-carousel'
// import XtxMore from './xtx-more.vue'
// export default {
// install (app) {
// // 全局注册组件
// app.component(XtxSkeleton.name, XtxSkeleton)
// app.component(XtxCarousel.name, XtxCarousel)
// app.component(XtxMore.name, XtxMore)
// }
// }
export default {
install (app) {
// 1.加载"./"下所有.vue文件
// 参数一:文件路径
// 参数二:是否作用到子文件夹
// 参数三:正则 - 文件名
const ctx = require.context('./', false, /\.vue$/)
// console.log(ctx, 'ctx')
// console.dir(ctx.keys()) // 路径
ctx.keys().forEach((item) => {
// ctx(item) // 导入这个组件 组件
const component = ctx(item).default
app.component(component.name, component)
})
}
}
// 注:组件需要name属性
在main.js中引入
import XtxUI from '@/components'
createApp(App)
.use(store)
.use(router)
.use(XtxUI) // 批量注册自定义组件
// .component(XtxSkeleton.name, XtxSkeleton)
.mount('#app')