关于React的Fragment

关于本篇文章。

这篇文章是关于React.Fragment的文章。它也兼具作者的备忘录的性质,可能有一些错误,请不要客气地在评论等地方联系我,以便更正。感谢!

“Fragment” 指的是

通常情况下,React组件必须具有一个根元素。使用Fragment可以突破这个限制,虽然返回值只能是一个元素,但是可以使用Fragment来实现。

一个公式的例子

比如说,假设有以下代码。
在Table类中调用了Columns组件。

class Table extends React.Component {
  render() {
    return (
      <table>
        <tr>
          <Columns />?ここで呼び出してる
        </tr>
      </table>
    );
  }
}

这是刚刚被调用的Columns组件。
在return语句中,一个被div包围的元素被返回。在div元素里面是包含td元素的形象。
如前所述,在React组件中,只能返回一个元素。

class Columns extends React.Component {
  render() {
    return (
      <div>?これがないと、二つの要素をreturnしようとしてしまうので、あえて`div要素`で囲うことで要素を一つにまとめている。
        <td>Hello</td>
        <td>World</td>
      </div>
    );
  }
}

最终的结果返回以下代码作为图像。

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

在这里,如果不用

标签来包装,而是使用React.Fragment,那么Columns组件的描述如下。

class Columns extends React.Component {
  render() {
    return (
      <>?React.Fragmentの代用。(<React.Fragment>でもよい。)
        <td>Hello</td>
        <td>World</td>
      </>
    );
  }
}

接着针对于以下代码的最终结果是这样的情景。

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

多余的

由于没有时,似乎是为了解决设计上的问题等。

使用和

来包围元素的区别

在前者中可以使用key。目前,它似乎是唯一一个可以传递给片段的属性。
在未来可能会增加更多…吗?

key是片段唯一可传递的属性。将来可能还支持传递其他属性,例如事件处理程序。

这意味着,最终考虑到设计等方面,是否使用片段比较好呢???使用起来也更方便…

使用和

来包围元素的区别2

· 简单地使用似乎需要更多时间。
不给它应用样式,直接使用ReactFragment,这种想法可能太简单了…

结论

最终的结论可能是,考虑到时间消耗和返回混乱的样式和多余的元素,使用ReactFragment可能是最稳妥的选择,但最好还是了解它的机制,得出了模糊的结论…

参考

官方文件

https://ja.reactjs.org/docs/fragments.html#short-syntax

这是一篇总结了片段和使用标签时的比较的文章。
非常感谢…

https://zenn.dev/januswel/articles/c80ac055b72955d71d41

bannerAds