Вы должны извлечь разметку в ее собственный функциональный компонент в этом случае:
const CustomComponent = ({title, data}) => (
<div>
{title}
{data}
</div>
);
Тогда вы можете сделать:
const Test = props => {
return (
<React.Fragment>
<CustomComponent title="Title 1" data={data1} />
<CustomComponent title="Title 2" data={data2} />
<CustomComponent title="Title 3" data={data3} />
<CustomComponent title="Title 4" data={data4} />
</React.Fragment>
);
}
Не очень понятно, откуда берутся ваши данные. Предполагая, что ваши элементы в массиве переданы как prop, вы можете просто отобразить их как:
const Test = props => {
return (
<React.Fragment>
{props.items.map(({title, data}) => (
<CustomComponent title={title} data={data} />
))}
</React.Fragment>
);
}
Это повседневный бизнес в реакции. Если компонент содержит повторяющиеся jsx, извлеките новый компонент. Производительность очень мала, если таковая имеется, и вам не следует беспокоиться, если она не слишком медленная в вашем реальном приложении.