关于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