React Fragments

Fragments

React 中的一个常见模式是一个组件返回多个元素。Fragments 允许你将子列表分组,而无需向 DOM 添加额外节点。
类似于微信小程序的block,只是用来包裹元素,不会在页面做任何渲染。
目前key 是唯一可以传递给 Fragment 的属性。未来可能会添加对其他属性的支持,例如事件。

class Table extends React.Component {
  render() {
    return (
      <table>
        <tr>
          <Columns />
        </tr>
      </table>
    );
  }
}
// <Columns /> 需要返回多个 <td> 元素以使渲染的 HTML 有效。
// 如果在 <Columns /> 的 render() 中使用了父 div,则生成的 HTML 将无效。
class Columns extends React.Component {
  render() {
    return (
      <div>
        <td>Hello</td>
        <td>World</td>
      </div>
    );
  }
}
// 得到的 <Table /> 输出:
<table>
  <tr>
    <div>
      <td>Hello</td>
      <td>World</td>
    </div>
  </tr>
</table>
// 无效
// 使用Fragment,则可以解决这个问题
class Columns extends React.Component {
  render() {
    return (
      <React.Fragment>
        <td>Hello</td>
        <td>World</td>
      </React.Fragment>
    );
  }
}
// 正确的输出 <Table />:
<table>
  <tr>
    <td>Hello</td>
    <td>World</td>
  </tr>
</table>

短语法

使用 <> </>来声明 Fragments,但是其不支持 key 或属性。

class Columns extends React.Component {
  render() {
    return (
      <>
        <td>Hello</td>
        <td>World</td>
      </>
    );
  }
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 此篇为React入门(进阶)系列二,在这里将进一步学习React以及了解相关生态知识 Fragments Reac...
    Eastboat阅读 2,405评论 0 0
  • 前端开发面试题 面试题目: 根据你的等级和职位的变化,入门级到专家级,广度和深度都会有所增加。 题目类型: 理论知...
    怡宝丶阅读 7,408评论 0 7
  • 深入JSX date:20170412笔记原文其实JSX是React.createElement(componen...
    gaoer1938阅读 12,479评论 2 35
  • 今天的React题没有太多的故事…… 半个月前出了248个Vue的知识点,受到很多朋友的关注,都强烈要求再出多些R...
    浪子神剑阅读 13,413评论 6 106
  • 8月的第一天,我发现了我人生第一根白头发。 我仿佛听到了它变白时的声音。随着某个时刻我脑袋里的某个想法,「嘣」地一...
    一只比亚阅读 1,720评论 0 0

友情链接更多精彩内容