From 000d4d0e4ed21cd288dbcc39db735aea252f8ef8 Mon Sep 17 00:00:00 2001 From: daiwei Date: Thu, 3 Jul 2025 16:44:22 +0800 Subject: [PATCH] chore: tweaks --- .../__tests__/componentAttrs.spec.ts | 2 +- .../__tests__/componentSlots.spec.ts | 7 +++++-- packages/runtime-vapor/src/componentProps.ts | 18 +++++++----------- 3 files changed, 13 insertions(+), 14 deletions(-) diff --git a/packages/runtime-vapor/__tests__/componentAttrs.spec.ts b/packages/runtime-vapor/__tests__/componentAttrs.spec.ts index 6fef2ba60..8d7af6123 100644 --- a/packages/runtime-vapor/__tests__/componentAttrs.spec.ts +++ b/packages/runtime-vapor/__tests__/componentAttrs.spec.ts @@ -472,6 +472,6 @@ describe('attribute fallthrough', () => { const root = document.createElement('div') createApp(App).use(vaporInteropPlugin).mount(root) - expect(root.innerHTML).toBe('
') + expect(root.innerHTML).toBe('
') }) }) diff --git a/packages/runtime-vapor/__tests__/componentSlots.spec.ts b/packages/runtime-vapor/__tests__/componentSlots.spec.ts index d6f4c0af3..58076fff9 100644 --- a/packages/runtime-vapor/__tests__/componentSlots.spec.ts +++ b/packages/runtime-vapor/__tests__/componentSlots.spec.ts @@ -241,11 +241,14 @@ describe('component: slots', () => { }), ).render() - // foo has higher priority than bindObj.foo - expect(props).toEqual({ foo: 0, baz: 'qux' }) + expect(props).toEqual({ foo: 100, baz: 'qux' }) foo.value = 2 await nextTick() + expect(props).toEqual({ foo: 100, baz: 'qux' }) + + delete bindObj.value.foo + await nextTick() expect(props).toEqual({ foo: 2, baz: 'qux' }) }) diff --git a/packages/runtime-vapor/src/componentProps.ts b/packages/runtime-vapor/src/componentProps.ts index a8fbafd5f..9cf65c571 100644 --- a/packages/runtime-vapor/src/componentProps.ts +++ b/packages/runtime-vapor/src/componentProps.ts @@ -178,16 +178,6 @@ export function getAttrFromRawProps(rawProps: RawProps, key: string): unknown { if (key === '$') return // need special merging behavior for class & style const merged = key === 'class' || key === 'style' ? ([] as any[]) : undefined - - // rawProps has high priority - if (hasOwn(rawProps, key)) { - if (merged) { - merged.push(rawProps[key]()) - } else { - return rawProps[key]() - } - } - const dynamicSources = rawProps.$ if (dynamicSources) { let i = dynamicSources.length @@ -206,7 +196,13 @@ export function getAttrFromRawProps(rawProps: RawProps, key: string): unknown { } } } - + if (hasOwn(rawProps, key)) { + if (merged) { + merged.push(rawProps[key]()) + } else { + return rawProps[key]() + } + } if (merged && merged.length) { return merged }