Проверяет понимание мутации props в React и правильных подходов к работе с массивами.
В React props являются неизменяемыми (immutable) по соглашению. Когда вы вызываете sort() на массиве, переданном через props, вы изменяете сам объект, который принадлежит родительскому компоненту. Это нарушает однонаправленный поток данных и может привести к тому, что родительский компонент будет отображать уже отсортированные данные без обновления состояния, что вызовет баги и сложности с отладкой.
Вместо мутации исходного массива следует создать его копию и отсортировать уже копию. Это гарантирует, что исходные данные останутся нетронутыми, а компонент будет работать с собственным представлением данных.
// Неправильно: мутация props
const sorted = props.items.sort((a, b) => a - b);
// Правильно: создание копии перед сортировкой
const sorted = [...props.items].sort((a, b) => a - b);
// или
const sorted = props.items.slice().sort((a, b) => a - b);Если сортировка нужна только для отображения, лучше выполнять её в момент рендеринга с помощью useMemo, чтобы избежать лишних вычислений при каждом рендере. Если же сортировка должна влиять на состояние, то нужно передавать callback наверх, чтобы родитель обновил данные.
Вывод: Всегда работайте с копиями данных, полученных через props, чтобы сохранить предсказуемость и чистоту компонентов. Это особенно важно в больших приложениях, где мутация props может привести к трудноуловимым ошибкам.
Уровень
Рейтинг:
4
Сложность:
3
Навыки
JavaScript
React
Ключевые слова
Подпишись на React Developer в телеграм
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию