gpt4 book ai didi

reactjs - 为什么 React 应用程序在布局渲染阶段表现不佳?

转载 作者:行者123 更新时间:2023-12-03 13:49:22 25 4
gpt4 key购买 nike

这里有可以容纳 child 的盒子。如果您单击一个框,它将为其添加一个子项。

https://codesandbox.io/s/suspicious-fire-e2jes

我很难理解的是,为什么随着最大深度的增加,创建子对象所需的时间会越来越长?

根据性能审计,问题不在于为节点定义父节点的数据结构格式,而不在于为节点定义所有子节点。

enter image description here

所以问题是布局。据我所知,一种反模式是你一遍又一遍地读-写-读-写样式,这迫使浏览器在每次读取之前计算布局。我在我的代码中没有看到任何此类内容。

最佳答案

问题肯定是布局。但不是你的布局。我尝试了你的代码,但没有加载你的 style.css 文件。它按预期工作。

我创建了一个类似的用例,但没有使用react。这里的纯 CSS 具有相同的 dom 结构:

const node = (id, children) => `
<div class='node'>${id}</div>
<div class='children'>
<div class='nodeAndChildren'>
${children}
</div>
</div>

`

document.getElementById("app").innerHTML = `
<div class='nodeAndChildren'>
${node(0, node(1, node(2, node(3, node(4, node(5, node(6, node(7, 'end'))))))))}
</div>
`;
.App {
font-family: sans-serif;
text-align: center;
}

.nodeAndChildren {
display: grid;
grid-auto-flow: column;
}

.node {
width: 100px;
border: 1px solid black;
}

.children {
display: grid;
}
<div id='app'/>

即使在这里,您也可以看到这有多慢。

对于 css 或网格布局来说,这似乎是一个奇怪的模式匹配问题。所以,我只尝试了内联样式,仍然很慢 https://codesandbox.io/embed/displaygrid-bug-bcgsm

我的建议是使用 css 列而不是网格。或者只是用 wrapper 弯曲盒子。

关于reactjs - 为什么 React 应用程序在布局渲染阶段表现不佳?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56360276/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com