Я думаю, это более или менее ясно из документов :
const [state, setState] = useState(initialState);
Аргумент initialState - это состояние, используемое во время начального рендеринга. В последующих рендерах это не учитывается. Если исходное состояние является результатом дорогостоящих вычислений, вы можете вместо этого предоставить функцию, которая будет выполняться только при начальном рендеринге
const [state, setState] = useState(() => {
const initialState = someExpensiveComputation(props);
return initialState;
});