React.Fragment代替div作为外层,可做不可见的包裹元素。定义组件的时,return返回需要唯一根元素,所以经常会写一个div来包裹,但如果不想渲染这个div,减少dom渲染,就可以引用Fragment组件。
<React.Fragment>
...
</React.Fragment>
类似于vue里的template:
<template>
...
</template>
使用场景举例
let tags = ['tag1', 'tag2', 'tag3']
return (
<div className="App">
{
tags.map((tag: string, index: number) => {
return <React.Fragment key={index}>
<div>{tag}</div>
<div> / </div>
</React.Fragment>
})
}
</div>
);
说明:
当循环渲染一个列表时,每次循环想创建两个div,但在这两个div中间又不想再包裹一个父div,则可以用这种方式,渲染之后的效果是这样的:
<div>tag1</div>
<div> / </div>
<div>tag2</div>
<div> / </div>
<div>tag1</div>
<div> / </div>
<div>tag3</div>
<div> / </div>
<></>也能渲染出这种效果,但是<></>不能添加属性,比如数组列表中需要给每一项添加唯一标识key,用<></>则不可以。