Проверяет понимание инициализации состояния-массива в React и способов избежать лишних вычислений при каждом рендере.
Когда вы пишете useState([]), JavaScript создаёт новый пустой массив при каждом вызове компонента. React использует это значение только при первом рендере, но сам факт создания массива происходит каждый раз. Для пустого массива это незначительно, но если массив заполняется сложными данными или вычисляется через функцию, это может замедлить приложение.
React предоставляет механизм ленивой инициализации: если передать в useState функцию, она будет вызвана только один раз — при первом рендере. Это гарантирует, что дорогостоящее создание массива не повторится.
// Плохо: массив создаётся каждый рендер
const [items, setItems] = useState(createInitialArray());
// Хорошо: функция вызывается только один раз
const [items, setItems] = useState(() => createInitialArray());
// Для пустого массива тоже лучше использовать функцию
const [list, setList] = useState(() => []);Используйте ленивую инициализацию через функцию для любых нетривиальных начальных значений состояния. Это простая практика, которая улучшает производительность и делает код более предсказуемым.
Уровень
Рейтинг:
4
Сложность:
3
Навыки
JavaScript
React
Ключевые слова
Подпишись на React Developer в телеграм
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию