From 25b257300a37cbba286c7603bfe9aafba366ac8d Mon Sep 17 00:00:00 2001 From: the1812 Date: Sat, 20 Apr 2024 11:23:18 +0800 Subject: [PATCH] Reduce unnecessary loops in traverseToRoot --- src/components/utils/comment/vnode-manager.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/components/utils/comment/vnode-manager.ts b/src/components/utils/comment/vnode-manager.ts index 27210b3fb..3615d9bfd 100644 --- a/src/components/utils/comment/vnode-manager.ts +++ b/src/components/utils/comment/vnode-manager.ts @@ -32,6 +32,8 @@ export class VNodeManager { if (!currentElement.parentElement[VNodeTargets].includes(currentElement)) { currentElement.parentElement[VNodeTargets].push(currentElement) } + // 其他 element 已经标记过此处, 可以直接 break 掉完成循环 + break } else { currentElement.parentElement[VNodeTargets] = [currentElement] } @@ -39,6 +41,7 @@ export class VNodeManager { } } + /** 解开组件实例的包装 */ private unwrapSubtree(vnode: Vue3Vnode): Vue3Vnode { if (vnode.component?.subTree) { return this.unwrapSubtree(vnode.component?.subTree)