Match-id-6dba12a07a039ce7f9486829ceea53a159b845a3

This commit is contained in:
* 2022-02-21 11:48:07 +08:00 committed by *
parent 6ebd45102e
commit a71b1dc317
1 changed files with 27 additions and 14 deletions

View File

@ -87,7 +87,10 @@ export function submitToRender(treeRoot) {
} }
function beforeSubmit(dirtyNodes: Array<VNode>) { function beforeSubmit(dirtyNodes: Array<VNode>) {
dirtyNodes.forEach(node => { let node;
const nodesLength = dirtyNodes.length;
for(let i = 0; i < nodesLength; i++) {
node = dirtyNodes[i];
try { try {
if ((node.flags & Snapshot) === Snapshot) { if ((node.flags & Snapshot) === Snapshot) {
callBeforeSubmitLifeCycles(node); callBeforeSubmitLifeCycles(node);
@ -95,35 +98,42 @@ function beforeSubmit(dirtyNodes: Array<VNode>) {
} catch (error) { } catch (error) {
handleSubmitError(node, error); handleSubmitError(node, error);
} }
}); }
} }
function submit(dirtyNodes: Array<VNode>) { function submit(dirtyNodes: Array<VNode>) {
dirtyNodes.forEach(node => { let node;
const nodesLength = dirtyNodes.length;
let isAdd;
let isUpdate;
let isDeletion;
let isClear;
for(let i = 0; i < nodesLength; i++) {
node = dirtyNodes[i];
try { try {
if ((node.flags & ResetText) === ResetText) { if ((node.flags & ResetText) === ResetText) {
submitResetTextContent(node); submitResetTextContent(node);
} }
if ((node.flags & Ref) === Ref) { if ((node.flags & Ref) === Ref) {
if (!node.isCreated) { if (!node.isCreated) {
// 需要执行 // 需要执行
detachRef(node, true); detachRef(node, true);
} }
} }
const isAdd = (node.flags & Addition) === Addition; isAdd = (node.flags & Addition) === Addition;
const isUpdate = (node.flags & Update) === Update; isUpdate = (node.flags & Update) === Update;
if (isAdd && isUpdate) { if (isAdd && isUpdate) {
// Addition // Addition
submitAddition(node); submitAddition(node);
FlagUtils.removeFlag(node, Addition); FlagUtils.removeFlag(node, Addition);
// Update // Update
submitUpdate(node); submitUpdate(node);
} else { } else {
const isDeletion = (node.flags & Deletion) === Deletion; isDeletion = (node.flags & Deletion) === Deletion;
const isClear = (node.flags & Clear) === Clear; isClear = (node.flags & Clear) === Clear;
if (isAdd) { if (isAdd) {
submitAddition(node); submitAddition(node);
FlagUtils.removeFlag(node, Addition); FlagUtils.removeFlag(node, Addition);
@ -139,23 +149,26 @@ function submit(dirtyNodes: Array<VNode>) {
} catch (error) { } catch (error) {
handleSubmitError(node, error); handleSubmitError(node, error);
} }
}); }
} }
function afterSubmit(dirtyNodes: Array<VNode>) { function afterSubmit(dirtyNodes: Array<VNode>) {
dirtyNodes.forEach(node => { let node;
const nodesLength = dirtyNodes.length;
for(let i = 0; i < nodesLength; i++) {
node = dirtyNodes[i];
try { try {
if ((node.flags & Update) === Update || (node.flags & Callback) === Callback) { if ((node.flags & Update) === Update || (node.flags & Callback) === Callback) {
callAfterSubmitLifeCycles(node); callAfterSubmitLifeCycles(node);
} }
if ((node.flags & Ref) === Ref) { if ((node.flags & Ref) === Ref) {
attachRef(node); attachRef(node);
} }
} catch (error) { } catch (error) {
handleSubmitError(node, error); handleSubmitError(node, error);
} }
}); }
} }
export function setRootThrowError(error: any) { export function setRootThrowError(error: any) {