VUE3动态注册全局组件?

VUE3动态注册全局组件?

vue2动态注册全局钻进可以使用的,但是vue3不行;也没有报错,我也在main.js中引入了这个文件

VUE3动态注册全局组件?

我用export default导出也还是不行

//importcomponents.js的内容
import { createApp } from "vue";
import App from "./App.vue";
const modulesFiles = require.context('@/components', false, /.vue$/)
const modules = modulesFiles.keys().reduce((modules, modulePath) => {

const moduleName = modulePath.replace(/^\.\/(.*)\.\w+$/, '$1').split('/')[0]

const value = modulesFiles(modulePath)

modules[moduleName] = value.default

const app =createApp(App)

app.component(moduleName, value.default)

// return modules

}, {});
export default modules

//main.js的内容
import importcomponents from '@/importcomponents.js'

const app=createApp(App)
importcomponents(app)
app.use(store).use(router).mount("#app");


回答:

createApp 会返回一个app实例,全局组件的话需要注册到对应的app实例里面才行。
你试试这样写(未验证):
import importComponent from '@/imporcomponents.js'

const app = createApp(App)
app.use(store).use(xxx)
importComponent(app)

然后在imporcomponents.js文件里导出importComponent方法,出入了app,使用app来注册组件

以上是 VUE3动态注册全局组件? 的全部内容, 来源链接: utcz.com/p/933580.html

回到顶部