React.Fragment

作者: 小进进不将就 | 来源:发表于2019-03-03 22:14 被阅读4次

1、作用:包裹一组子节点,但不返回本身的节点

2、例:返回子组件里多个 <td> 节点
父:

class Table extends React.Component {
  render() {
    return (
      <table>
        <tr>
          <Columns />
        </tr>
      </table>
    );
  }
}

子:

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>

<div> 原本是子组件的最外一层(renderreturn 只能返回一个标签,而不能是多个),但到了父组件后,却是多余的标签,这时候通过 fragment 来去掉它。

  • 在子组件中用 Fragment 标签代替 div 标签
class Columns extends React.Component {
  render() {
    return (
      <React.Fragment>
        <td>Hello</td>
        <td>World</td>
      </React.Fragment>
    );
  }
}

与父组件结合后,相当于:

<table>
  <tr>
    <td>Hello</td>
    <td>World</td>
  </tr>
</table>

也就是说,Fragment 标签的作用是作为顶级标签来包裹子标签,并且编译后消失。

注意:<React.Fragment> 只支持 key 属性,如:

 <div>
      {arr.map(item => (
        // 没有设置 key 属性的话,react 会报警告
        <React.Fragment key={item.id}>
          <p>{item.name}</p>
        </React.Fragment>
      ))}
    </div>
  • 简写
    用 <> 代替 <React.Fragment>
class Columns extends React.Component {
  render() {
    return (
      <>
        <td>Hello</td>
        <td>World</td>
      </>
    );
  }
}

注意:简写不支持添加 key 和 属性 attributes

参考:https://reactjs.org/docs/fragments.html#motivation


欢迎关注公众号:gh_042070ae6d0a ,每周分享前端干货和生活感悟!
(完)

相关文章

  • React源码笔记

    1.React.Fragment可以简写为<>,babel会自动按React.Fragment处理2.Rea...

  • React.Fragment

    React.Fragment 官方文档: React 中一个常见模式是为一个组件返回多个元素。Fragments ...

  • React.Fragment

    在react中,render()方法中渲染的元素都必须被一个根标签包裹。通常我们都会选择使用 将元素进行包裹,但...

  • React.Fragment

    1、作用:包裹一组子节点,但不返回本身的节点 2、例:返回子组件里多个 节点父: 子: 结合好,父组件的 ta...

  • React.Fragment

    Refer doc: https://reactjs.org/docs/fragments.html#[https...

  • React-Native React.Fragment 去除无

    look~ 最外层的没有什么用,只是为了包裹内部的组件,这样就照成了一次不必要的渲染~有什么办法可以解...

  • React标签嵌套太多?试一下React.Fragment

    react16版本更新很久了,其中更新出的一些新特性,有助于代码优化的,还是希望同学们能运用起来。之前给大家介绍了...

网友评论

    本文标题:React.Fragment

    本文链接:https://www.haomeiwen.com/subject/zmwhuqtx.html