为什么React 16中的片段比container div更好?

在React 16.2中,增加了对片段的改进支持。更多信息可以在React的博客上找到

我们都熟悉以下代码:

render(){
返回(
//无关div元素:(
<div>
一些文本。
<h2>A标题</h2>
更多文本。
<h2>另一个标题</h2>
更多的文本。
</div>
);
}

是的,我们需要一个集装箱部门,但没什么大不了的

在React 16.2中,我们可以这样做以避免周围的容器div:

render(){
返回(
<碎片>
一些文本。
<h2>A标题</h2>
更多文本。
<h2>另一个标题</h2>
更多的文本。
</Fragment>
);
}

在这两种情况下,我们仍然需要一个容器元素包围内部元素

我的问题是,为什么使用片段更可取?它对性能有帮助吗?如果有,为什么?我想了解一下

  1. 它的速度稍微快一点,并且内存使用量更少(无需创建额外的DOM节点)。这只对非常大和/或很深的树有真正的好处,但应用程序性能通常会受到千次削减的影响。这是一次削减
  2. 一些FSS和CSS网格等CSS机制有一种特殊的亲子关系,在中间添加“代码> div s,使得在提取逻辑组件时很难保持期望的布局。
  3. DOM检查器不那么凌乱。:-)

您可以在这个React问题中找到一些其他用例的描述:添加片段API以允许从渲染返回多个组件

发表评论