Match-id-8002edd63f044bbac50a823f0b125e8c0c59c72f
This commit is contained in:
commit
589e982cc4
|
@ -239,11 +239,7 @@ function insertOrAppendPlacementNode(
|
|||
const { tag, realNode } = node;
|
||||
|
||||
if (isDomVNode(node)) {
|
||||
if (beforeDom) {
|
||||
insertDomBefore(parent, realNode, beforeDom);
|
||||
} else {
|
||||
appendChildElement(parent, realNode);
|
||||
}
|
||||
insertDom(parent, realNode, beforeDom);
|
||||
} else if (tag === DomPortal) {
|
||||
// 这里不做处理,直接在portal中处理
|
||||
} else {
|
||||
|
@ -256,6 +252,14 @@ function insertOrAppendPlacementNode(
|
|||
}
|
||||
}
|
||||
|
||||
function insertDom(parent, realNode, beforeDom) {
|
||||
if (beforeDom) {
|
||||
insertDomBefore(parent, realNode, beforeDom);
|
||||
} else {
|
||||
appendChildElement(parent, realNode);
|
||||
}
|
||||
}
|
||||
|
||||
// 遍历所有子节点:删除dom节点,detach ref 和 调用componentWillUnmount()
|
||||
function unmountDomComponents(vNode: VNode): void {
|
||||
let currentParentIsValid = false;
|
||||
|
@ -323,7 +327,8 @@ function submitClear(vNode: VNode): void {
|
|||
|
||||
// 在所有子项都卸载后,删除dom树中的节点
|
||||
removeChildDom(currentParent, vNode.realNode);
|
||||
currentParent.append(cloneDom);
|
||||
const realNodeNext = getSiblingDom(vNode);
|
||||
insertDom(currentParent, cloneDom, realNodeNext);
|
||||
vNode.realNode = cloneDom;
|
||||
attachRef(vNode);
|
||||
FlagUtils.removeFlag(vNode, Clear);
|
||||
|
|
Loading…
Reference in New Issue