Skip to content

Commit 39f85ec

Browse files
committed
fix(runtime-vapor): don't overridden attrs in static template
closes #253
1 parent 5f92ff8 commit 39f85ec

File tree

3 files changed

+10
-7
lines changed

3 files changed

+10
-7
lines changed

packages/runtime-vapor/src/apiCreateComponent.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ export function createComponent(
2323
slots,
2424
once,
2525
)
26-
setupComponent(instance, singleRoot)
26+
setupComponent(instance)
2727

2828
// register sub-component with current component for lifecycle management
2929
current.comps.add(instance)

packages/runtime-vapor/src/apiRender.ts

+2-5
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,7 @@ export type Fragment = {
3030
[fragmentKey]: true
3131
}
3232

33-
export function setupComponent(
34-
instance: ComponentInternalInstance,
35-
singleRoot: boolean = false,
36-
): void {
33+
export function setupComponent(instance: ComponentInternalInstance): void {
3734
if (__DEV__) {
3835
startMeasure(instance, `init`)
3936
}
@@ -97,7 +94,7 @@ export function setupComponent(
9794
block = []
9895
}
9996
instance.block = block
100-
if (singleRoot) fallThroughAttrs(instance)
97+
fallThroughAttrs(instance)
10198
return block
10299
})
103100
reset()

packages/runtime-vapor/src/componentAttrs.ts

+7-1
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,12 @@ export function fallThroughAttrs(instance: ComponentInternalInstance): void {
7272
if (inheritAttrs === false) return
7373

7474
if (block instanceof Element) {
75-
renderEffect(() => setDynamicProps(block, instance.attrs))
75+
// attrs in static template
76+
const initial: Record<string, string> = {}
77+
for (let i = 0; i < block.attributes.length; i++) {
78+
const attr = block.attributes[i]
79+
initial[attr.name] = attr.value
80+
}
81+
renderEffect(() => setDynamicProps(block, instance.attrs, initial))
7682
}
7783
}

0 commit comments

Comments
 (0)