无法直接使用全局自动导入的命名空间组件
Vue version
^3.3.4
Link to minimal reproduction
https://github.com/Handpear/vue-namespace-components-test
Steps to reproduce
我使用 unplugin-auto-import 这个插件(最新版)将我自定义的组件生成了自动导入,可以看到在 script 标签中打印了四组变量,分别是手动导入、全局自动导入、全局自动导入的引用、全局自动导入的解构,当我将他们作为组件渲染时,发现只有全局自动导入的组件无法渲染(请忽略图中的TS报错,在实际项目中类型是没问题的),并且得到了一个报错,似乎组件被解析为了自定义标签?我刚接触 Vue,在以往的 React 项目中同样的用法并没有这样的问题,所以可能并不是 unplugin-auto-import 或者 vite 的问题?
What is expected?
无需在 script 标签中重新声明组件即可直接使用命名空间组件
What is actually happening?
需要在 script 标签中以 引用或解构的方式再次声明组件才能正确渲染
System Info
No response
Any additional comments?
No response
unplugin-auto-import 这个插件并不适合自动导入组件,然后在模板中使用。在模板中使用时,会被解析成_resolveComponent("UiAuto.ButtonA"),这是去获取注册的组件,但UiAuto.ButtonA并没注册,所以会失败。
跟vue-core没关系。先去unplugin-auto-import的仓库提一个问题吧。
emmmmmmm...谢谢你的建议,但我不认为 unplugin-auto-import 有什么问题,因为在 react 或 vue tsx 中这种方式工作良好,它仅在 vue component 中失效
导入 Vue 组件请用 https://github.com/antfu/unplugin-vue-components