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