Match-id-3af6008f5308a6c047b9f9a878e9990b606326bd

This commit is contained in:
* 2022-01-28 10:54:06 +08:00 committed by *
parent aa1944e8d4
commit 75289ee085
1 changed files with 10 additions and 10 deletions

View File

@ -252,11 +252,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 {
@ -269,6 +265,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;
@ -337,11 +341,7 @@ function submitClear(vNode: VNode): void {
// 在所有子项都卸载后删除dom树中的节点
removeChildDom(currentParent, vNode.realNode);
const realNodeNext = getSiblingDom(vNode);
if (realNodeNext) {
insertDomBefore(currentParent, cloneDom, realNodeNext);
} else {
appendChildElement(currentParent, cloneDom);
}
insertDom(currentParent, cloneDom, realNodeNext);
vNode.realNode = cloneDom;
attachRef(vNode);
FlagUtils.removeFlag(vNode, Clear);