Closed Y80 closed 1 month ago
.vue 组件在 setup() {} 中返回了 JSX 组件,例如:
.vue
setup() {}
defineComponet({ setup() { return () => <div>ok</div> } })
经过插件编译之后,始终 const h = this.$createElement
const h = this.$createElement
如果检测到是在 setup() 中,使用 getCurrentInstance()?.proxy 替换 this。或者使用 import { h } from 'vue'。
setup()
getCurrentInstance()?.proxy
this
import { h } from 'vue'
我猜应该是插件 @vue/babel-sugar-composition-api-render-instance 在 Rspack 中失效了。(Rspack 没有兼容其中某些 API?) 使用 Vite 时可以正常运行,h 是从 vue 依赖中导入的。
h
vue
解决了吗?
好像解决了。应该是 Rspack 后来更新无意间修复了这个 BUG。
不过使用 .tsx / .jsx 的话是铁定没这个问题的。
.tsx / .jsx
问题描述
.vue
组件在setup() {}
中返回了 JSX 组件,例如:经过插件编译之后,始终
const h = this.$createElement
Rspack 配置
期望
如果检测到是在
setup()
中,使用getCurrentInstance()?.proxy
替换this
。或者使用import { h } from 'vue'
。其他
我猜应该是插件 @vue/babel-sugar-composition-api-render-instance 在 Rspack 中失效了。(Rspack 没有兼容其中某些 API?) 使用 Vite 时可以正常运行,
h
是从vue
依赖中导入的。