fix(runtime-core): remove prod-only hoisted clone behavior for manual DOM manipulation compat
fix #6727 fix #6739
This commit is contained in:
parent
c0d8db81a6
commit
aa70188c41
|
@ -345,7 +345,6 @@ function baseCreateRenderer(
|
|||
parentNode: hostParentNode,
|
||||
nextSibling: hostNextSibling,
|
||||
setScopeId: hostSetScopeId = NOOP,
|
||||
cloneNode: hostCloneNode,
|
||||
insertStaticContent: hostInsertStaticContent
|
||||
} = options
|
||||
|
||||
|
@ -618,19 +617,8 @@ function baseCreateRenderer(
|
|||
) => {
|
||||
let el: RendererElement
|
||||
let vnodeHook: VNodeHook | undefined | null
|
||||
const { type, props, shapeFlag, transition, patchFlag, dirs } = vnode
|
||||
if (
|
||||
!__DEV__ &&
|
||||
vnode.el &&
|
||||
hostCloneNode !== undefined &&
|
||||
patchFlag === PatchFlags.HOISTED
|
||||
) {
|
||||
// If a vnode has non-null el, it means it's being reused.
|
||||
// Only static vnodes can be reused, so its mounted DOM nodes should be
|
||||
// exactly the same, and we can simply do a clone here.
|
||||
// only do this in production since cloned trees cannot be HMR updated.
|
||||
el = vnode.el = hostCloneNode(vnode.el)
|
||||
} else {
|
||||
const { type, props, shapeFlag, transition, dirs } = vnode
|
||||
|
||||
el = vnode.el = hostCreateElement(
|
||||
vnode.type as string,
|
||||
isSVG,
|
||||
|
@ -693,7 +681,7 @@ function baseCreateRenderer(
|
|||
}
|
||||
// scopeId
|
||||
setScopeId(el, vnode, vnode.scopeId, slotScopeIds, parentComponent)
|
||||
}
|
||||
|
||||
if (__DEV__ || __FEATURE_PROD_DEVTOOLS__) {
|
||||
Object.defineProperty(el, '__vnode', {
|
||||
value: vnode,
|
||||
|
|
Loading…
Reference in New Issue