После добавления компонентов стиля в этот пример мы заметили, что наш компонент списка обновляет все, когда изменяется только один элемент в состоянии.
Подсветки отрисовки списка (из инструментов разработки React) чрезмерны при добавлении / удалении одной записи. Удаляется / добавляется один элемент, затем выделяются все элементы.
Вот пример правильного компонента списка (CategoryizedList.js)
import styled from "styled-components";
const Item = styled.li`
color: #444;
`;
class CategorizedList extends PureComponent {
render() {
return (
<div>
{this.props.categories.map(category => (
<ul>
<li key = {this.props.catStrings[category]}>
{this.props.catStrings[category]}
</li>
<ul>
{this.props.items.map((item, index) =>
item.category === category ? (
<div key = {item.label + index}>
<Item>{item.label}</Item>
</div>
) : null
)}
</ul>
</ul>
))}
</div>
);
}
}
Я бы предпочел использовать PureComponent, чтобы shouldComponentUpdate()обрабатывается автоматически.
Как мы можем убедиться, что повторно визуализируются только измененные объекты в состоянии items?





Если данные изменятся, представление будет повторно визуализировано. Это не должен быть дорогостоящим процессом, поскольку он происходит один раз при добавлении / удалении. Если вы обнаружите проблемы с производительностью, это может быть связано с чем-то другим.
В общем, это будет способ, которым вы можете иметь некоторый контроль над повторным рендерингом чистых компонентов: https://reactjs.org/docs/react-api.html#reactmemo
согласно вашей ссылке
doing a check on their props and state is lightning fast compared to the cost of re-rendering each oneКакой удар производительности вы ожидаете получить в этом списке, где вам нужно применить этот подход?