From bf9ac64a3f1a834f52e70b10cbc3a0fce52fc839 Mon Sep 17 00:00:00 2001 From: Rizumu Ayaka Date: Tue, 28 Oct 2025 14:25:02 +0900 Subject: [PATCH 1/2] test(vapor): handle prop when vapor renders vdom component --- .../__tests__/vdomInterop.spec.ts | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/packages/runtime-vapor/__tests__/vdomInterop.spec.ts b/packages/runtime-vapor/__tests__/vdomInterop.spec.ts index a9baea6ab2d..546078c8bcb 100644 --- a/packages/runtime-vapor/__tests__/vdomInterop.spec.ts +++ b/packages/runtime-vapor/__tests__/vdomInterop.spec.ts @@ -49,6 +49,28 @@ describe('vdomInterop', () => { expect(html()).toBe('foo') }) + + test('should handle class prop when vapor renders vdom component', () => { + const VDomChild = defineComponent({ + setup() { + return () => h('div', { class: 'foo' }) + }, + }) + + const VaporChild = defineVaporComponent({ + setup() { + return createComponent(VDomChild as any, { class: () => 'bar' }) + }, + }) + + const { html } = define({ + setup() { + return () => h(VaporChild as any) + }, + }).render() + + expect(html()).toBe('
') + }) }) describe('v-model', () => { From 3eb49f500fe4233d044ab9960f96e7ebb1ce9dfe Mon Sep 17 00:00:00 2001 From: Rizumu Ayaka Date: Tue, 28 Oct 2025 14:29:18 +0900 Subject: [PATCH 2/2] fix(vapor): handle prop when vapor renders vdom component --- packages/runtime-vapor/src/componentProps.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/runtime-vapor/src/componentProps.ts b/packages/runtime-vapor/src/componentProps.ts index 6832bd9103c..d7502abdcd8 100644 --- a/packages/runtime-vapor/src/componentProps.ts +++ b/packages/runtime-vapor/src/componentProps.ts @@ -370,7 +370,10 @@ function propsDeleteDevTrap(_: any, key: string | symbol) { } export const rawPropsProxyHandlers: ProxyHandler = { - get: getAttrFromRawProps, + get(target, key) { + if (key === ReactiveFlags.RAW) return target + return getAttrFromRawProps(target, key as string) + }, has: hasAttrFromRawProps, ownKeys: getKeysFromRawProps, getOwnPropertyDescriptor(target, key: string) {