fix(runtime-core): set scope id before props (#6948)

close #6923
Also ensure consistency with Vue 2
This commit is contained in:
Zollero 2022-11-14 11:53:46 +08:00 committed by GitHub
parent f2c46ed9cf
commit da2ced1533
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 5 deletions

View 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>` +

View 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', {