gpt4 book ai didi

javascript - 是否有条件地呈现 React 组件而不是原始标记以节省性能?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:30:15 27 4
gpt4 key购买 nike

这在我的脑海中是有道理的,但我一直无法找到任何事实/文章来支持它。

本质上就是在做类似的事情

render() {
return (
someBoolean && <div>Some Markup</div>
)
}

性能低于

render() {
return (
someBoolean && <SomeComponent />
)
}

其中 SomeComponent 具有与前面示例完全相同的标记。

我的理由是因为标记必须在每次重新渲染时创建它会占用更多内存而保存的组件 SomeComponent 将在内存中引用并且不必在每次重新渲染时创建。

react 文档中有什么地方更彻底地解释了这一点吗?
还是这个推理不准确?

最佳答案

JSX 是 React.createElement 的语法糖。在Babel REPL中可以看出, 他们是

return someBoolean && React.createElement(
"div",
null,
"Some Markup"
);

return someBoolean && React.createElement(SomeComponent, null);

分别。

someBoolean 为假时,React.createElement 不会被调用并且 render 变为空操作。

SomeComponent 没有缓存,每次都会重新创建。与原始标记相比,考虑到它是无状态组件,它提供的开销可以忽略不计:

const SomeComponent = () => <div>Some Markup</div>;

这两个选项都非常快,不应该被优化。

关于javascript - 是否有条件地呈现 React 组件而不是原始标记以节省性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49374680/

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