在使用Vue3结合Elementplus做组件导入时,出现了组件无法显示,只在网页中出现了组建template中涉及ui中的相关字符串,或者页面中完全没有显示的情况。
经排错,是由于main.js文件中完整导入时,自作主张将Vue3自带的生成段和ElementPlus提供的部分注册段结合了。
app.use(ElementPlus)
createApp(App).mount('#app')
严格按照ElementPlus提供的写法
const app = createApp(App)
app.use(ElementPlus)
app.mount('#app')
即可顺利显示组件。
倒推后提出猜想:
上面一种写法中app的声明是ElementPlus注册之后才创建的,也就是说Element注册被调用时,注册到了一个还没有产生,并不存在的“app”上,这样的注册显然是空的无效的。而后产生的app也不会被之前的注册影响。
后一种写法,在创建完app后,先将Element注册于其上,再mount进App.vue中,这就保证了app注册进Vue主文件中时,一定是注册好Element的。
这个案例提供的思考应该不仅限于此,可以说,Vue3 CLI自带的main.js虽然简化了app全局注册的写法,但是在需要注册其他绑定app的依赖时,都需要采用后者的写法。