在官方文档中,原文是,“React 中的一个常见模式是一个组件返回多个元素。Fragments 允许你将子列表分组,而无需向 DOM 添加额外节点。”,意思就是你在写组件的时候,外面再套一个 Fragments。类似于 vue 中的 template
为什么要使用 Fragments,举个例子,比如我们要做个表格组件,父组件的代码是这样
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>
);
}
}