Зачем в useState передавать функцию в качестве начального значения?

Функция-инициализатор useState откладывает вычисление начального значения до инициализации состояния, а не выполняет его при каждом рендере.

Короткий ответ

Что ответить на собеседовании

Функция-инициализатор useState откладывает вычисление начального значения до инициализации состояния, а не выполняет его при каждом рендере.

Подробный разбор

Ответ с пояснениями

Функция-инициализатор useState откладывает вычисление начального значения до инициализации состояния, а не выполняет его при каждом рендере.

useState(() => expensiveCalculation()) передаёт вычисление React; useState(expensiveCalculation()) сначала вычисляет аргумент при каждом вызове компонента, хотя новое начальное значение затем игнорируется. Инициализатор должен быть чистым: в Strict Mode development React может вызвать его повторно для проверки. Если само значение — функция, нужна обёртка, возвращающая её.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее