//immer사용 전 불변성
const newTodos = [...todos, {id:3, title:" 제목3"}]
//immer사용 gn 불변성
const newTodos =produce(todos,draft => {
draft.push({id:3, title"제목3"});
State의 변화 ➡️ 렌더링 ➡️ 컴포넌트 내부 변수들 초기화
Ref의 변화 ➡️ No 렌더링 ➡️ 변수들의 값이 유지됨
State의 변화 ➡️ 렌더링 ➡️ 그래도 Ref의 값은 유지됨
- 변경시 렌더링을 발생시키지 말아야하는 값을 다룰때 사용한다 (변화는 감지해야하지만, 그 변화가 렌더링을 발생시키면 안될때!!)
useEffect(() => {
AppCallCount++;
console.log(`App이 ${AppCallCount}번 실행`);
}, []);