Fragment组件
在官方文档中,原文是,“React 中的一个常见模式是一个组件返回多个元素。Fragments 允许你将子列表分组,而无需向 DOM 添加额外节点。”,意思就是你在写组件的时候,外面再套一个Fragments。类似于vue中的template
使用场景:
父组件
class Table extends React.Component {
render() {
return (
<table>
<tr>
<Columns />
</tr>
</table>
);
}
}
如果子组件Columns的代码是这样的话,在<Columns />
的 render() 中使用了父 div,则生成的 HTML 将无效
class Columns extends React.Component {
render() {
return (
<div>
<td>Hello</td>
<td>World</td>
</div>
);
}
}
Fragments解决了这个问题,Columns组件中加入Fragments后,生成的html就正常了
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>