export const useLocalStorage = (key, initialValue) => {
const [value, setValue] = useState(() => {
return getSavedValue(key, initialValue);
});
return [value, setValue];
};
이러한 예제에서 useState값 안에 익명함수가 있다.
const [value, setValue] = useState(getSavedValue(key, initialValue));
와
const [value, setValue] = useState(() => { return getSavedValue(key, initialValue); });
의 차이는 무엇일까 ?
그냥 useState안에 getSavedValue()
만 넣으면
1. state가 렌더링될때 getSavedValue()를 실행한다.
2. 그이후로 setState로 값이 변경되면 전체 함수(컴포넌트)가 다시 실행되며 state값을 업데이트한다. -> 리렌더링을 발생
3. 리렌더링이되면 state는 다시 getSavedValue() 를 실행한다.(불필요한 계산)