From: Zollero Date: Mon, 14 Nov 2022 03:53:46 +0000 (+0800) Subject: fix(runtime-core): set scope id before props (#6948) X-Git-Tag: v3.2.46~73 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=da2ced15339b6fdb7a1459fa359bb79346a82bc2;p=thirdparty%2Fvuejs%2Fcore.git fix(runtime-core): set scope id before props (#6948) close #6923 Also ensure consistency with Vue 2 --- diff --git a/packages/runtime-core/__tests__/scopeId.spec.ts b/packages/runtime-core/__tests__/scopeId.spec.ts index 606da2887c..cdbb81c419 100644 --- a/packages/runtime-core/__tests__/scopeId.spec.ts +++ b/packages/runtime-core/__tests__/scopeId.spec.ts @@ -126,7 +126,7 @@ describe('scopeId runtime support', () => { const root = nodeOps.createElement('div') render(h(Root), root) expect(serializeInner(root)).toBe( - `
` + + `
` + `
hoisted
` + `
dynamic
` + `
` @@ -152,8 +152,8 @@ describe('scopeId runtime support', () => { const root2 = nodeOps.createElement('div') render(h(Root2), root2) expect(serializeInner(root2)).toBe( - `
` + - `
` + + `
` + + `
` + `
hoisted
` + `
dynamic
` + `
` + diff --git a/packages/runtime-core/src/renderer.ts b/packages/runtime-core/src/renderer.ts index 4a6d8993a4..4dfbc65699 100644 --- a/packages/runtime-core/src/renderer.ts +++ b/packages/runtime-core/src/renderer.ts @@ -646,6 +646,8 @@ function baseCreateRenderer( if (dirs) { invokeDirectiveHook(vnode, null, parentComponent, 'created') } + // scopeId + setScopeId(el, vnode, vnode.scopeId, slotScopeIds, parentComponent) // props if (props) { for (const key in props) { @@ -679,8 +681,6 @@ function baseCreateRenderer( invokeVNodeHook(vnodeHook, parentComponent, vnode) } } - // scopeId - setScopeId(el, vnode, vnode.scopeId, slotScopeIds, parentComponent) if (__DEV__ || __FEATURE_PROD_DEVTOOLS__) { Object.defineProperty(el, '__vnode', {