5 упражнений
Компонент списка задач позволяет добавлять, удалять и сортировать задачи. После удаления средней задачи input-поля сдвигаются, показывая чужой текст.
Дорогой дочерний компонент обёрнут в React.memo для предотвращения лишних рендеров. В React DevTools видно, что он перерисовывается при каждом изменении родителя.
Компонент аналитики фильтрует и агрегирует тысячи транзакций. При вводе в поле поиска интерфейс зависает на сотни миллисекунд.
Приложение использует Context для передачи данных пользователя. После любого обновления состояния в корневом компоненте все потребители Context перерисовываются, хотя данные не изменились.
Компонент лидерборда сортирует и ранжирует тысячи пользователей. Производительность деградирует при наборе текста в поле поиска, а useCallback не даёт ожидаемого эффекта.