React一个常用的模式是组件返回多个元素。Fragment可以为你的子元素分组而不需要在DOM上为它们添加额外的节点。
Fragment 使用
c
render() {return (
<React.Fragment>
<ChildA />
<ChildB />
<ChildC />
</React.Fragment> );}
短语法使用
这里有一种短语法可以用来声明Fragment,它看起来就像是空标签:
c
class Columns extends React.Component {
render() {
return (
<>
<td>Hello</td>
<td>World</td>
</>
);
}
}
两者区别
使用<React.Fragment>语法声明的Fragment是可以有key的。一个使用场景是将集合映射到一组Fragment数组。举个例子:创建一个描述列表:
c
function Glossary(props) {
return (
<dl>
{props.items.map(item => (
// 没有`key`,将会触发一个key警告
<React.Fragment key={item.id}>
<dt>{item.term}</dt>
<dd>{item.description}</dd>
</React.Fragment>
))}
</dl>
);
key是唯一能传递给Fragment的属性。在未来,我们可能会支持其他如事件处理器的属性。