javascript - 为什么 React 16 中的 Fragments 比容器更好?

标签 javascript reactjs

所以,我深入学习了 React,现在我正在研究 React Fragments。正如官方文档 https://reactjs.org/docs/fragments.html 中所述,片段是返回多个元素的非常有趣的方式。但我不知道它比通常的组件和通过它传输子组件更好?

最佳答案

  1. 它的速度稍快一些,内存也更少(不需要创建额外的 DOM 节点)。这仅对非常大和/或很深的树带来真正的好处,但应用程序性能通常会因数千次切割而受到影响。这种减少幅度较小。
  2. 一些 CSS 机制,例如 Flexbox 和 CSS Grid,父子之间有特殊的关系,在中间添加 div 会导致在检索逻辑组件时很难保持所需的布局。 DOM 检查器不再那么困惑:-)

在此React问题中,您可以找到一些其他用途的描述:https://github.com/facebook/react/issues/2127

  • 增加了 JSX 以前不具备的功能
  • 改进了 jsx 的语义标记。如果需要的话,会使用包装器的元素,而不是因为它们是强制的。
  • 不太常见的 dom 布局(提高渲染性能并降低内存成本)
  • 这很简单,就像当您不需要 shell 元素时,您不必使用它。如果考虑到元素较少,但我认为最大的优点是它们可以在 jsx 中显示以前不可能的元素,并为 shell 元素添加更好的语义值,因为现在它们是可选的。

    以前这是不可能的:

    <span>
      {this.renderOptions ()}
    </span>
    

    再看React 15中的下一个,你无法确定是否需要包装元素:

    <span>
      <h1> Hello </ h1>
      {this.getContent ()}
    </span>
    

    关于javascript - 为什么 React 16 中的 Fragments 比容器更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49094455/

    相关文章:

    javascript - Node JS 中事件的链接请求和数据

    javascript - grunt-autoshot 'cannot call method ' createPage' of undefined'

    javascript - React 找不到 Material UI 组件的导入

    reactjs - 何时使用 Redux-saga/Redux thunk,何时不使用?

    reactjs - 使用useState多次setState但只触发一次?

    javascript - 在开发和生产模式之间切换

    javascript - 为什么在计算scrollPercent时需要从windowHeight减少clientHeight?

    javascript - 如何将日期从 mongodb 转换为 JavaScript 或 jQuery?

    javascript - 如何显示带有 Facebook Analytics 数据的仪表板

    Css 网格 - html 表单 - 我无法在垂直流中引导我的元素