]> git.ipfire.org Git - thirdparty/vuejs/core.git/commitdiff
fix(runtime-core): set scope id before props (#6948)
authorZollero <corona7@163.com>
Mon, 14 Nov 2022 03:53:46 +0000 (11:53 +0800)
committerGitHub <noreply@github.com>
Mon, 14 Nov 2022 03:53:46 +0000 (22:53 -0500)
close #6923
Also ensure consistency with Vue 2

packages/runtime-core/__tests__/scopeId.spec.ts
packages/runtime-core/src/renderer.ts

index 606da2887cf95138f94cfd27b530b8080493348f..cdbb81c4191c0817f04094581fd8f1fad46d068f 100644 (file)
@@ -126,7 +126,7 @@ describe('scopeId runtime support', () => {
     const root = nodeOps.createElement('div')
     render(h(Root), root)
     expect(serializeInner(root)).toBe(
-      `<div class="wrapper" wrapper slotted root>` +
+      `<div wrapper slotted root class="wrapper">` +
         `<div root slotted-s>hoisted</div>` +
         `<div root slotted-s>dynamic</div>` +
         `</div>`
@@ -152,8 +152,8 @@ describe('scopeId runtime support', () => {
     const root2 = nodeOps.createElement('div')
     render(h(Root2), root2)
     expect(serializeInner(root2)).toBe(
-      `<div class="wrapper" wrapper slotted root>` +
-        `<div class="wrapper" wrapper root slotted-s>` +
+      `<div wrapper slotted root class="wrapper">` +
+        `<div wrapper root slotted-s class="wrapper">` +
         `<div root>hoisted</div>` +
         `<div root>dynamic</div>` +
         `</div>` +
index 4a6d8993a491768cae6ecf20dce88c5f2a8d49a9..4dfbc65699697ef7c4134f452c2dfb795d958396 100644 (file)
@@ -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', {