diff --git a/dom/src/dom/root_node.cc b/dom/src/dom/root_node.cc index 79916b296c7..6e737cd9f01 100644 --- a/dom/src/dom/root_node.cc +++ b/dom/src/dom/root_node.cc @@ -142,7 +142,12 @@ void RootNode::CreateDomNodes(std::vector>&& nodes, boo OnDomNodeCreated(node); } for (const auto& node : nodes_to_create) { - node->SetRenderInfo({node->GetId(), node->GetPid(), node->GetSelfIndex(), node->GetSelfDepth()}); + if (needSortByIndex) { + node->SetRenderInfo({node->GetId(), node->GetPid(), node->GetSelfIndex(), node->GetSelfDepth()}); + } else { + // 如果不需要对 index 排序,其他场景目前没有用到 depth,避免冗余计算 + node->SetRenderInfo({node->GetId(), node->GetPid(), node->GetSelfIndex(), -1}); + } } if (needSortByIndex) {