MVC 패턴 등의 개발 방식은 대규모 개발에 적합치 않음 -> Flux 패턴

Flux 패턴은 단방향이기 때문에 에러 추적이 훨씬 쉽기에 대규모에 더 적합하다.(Redux도 Flux였죠..?)
const nextTodo = [...todo, {title : newTodo, completed : false, id : Math.random()}]
setTodo(nextTodo)
// 부모
const onSubmit = (newTodo) => (e) => {
const nextTodo = [...todo, {title : newTodo, completed : false, id : Math.random()}]
//자식
const [newTodo, setNewTodo] = useState('')
const onSubmit = (e) => {
e.preventDefault()
onParentSubmit(newTodo)
}
const onChange = (e) => {
setTodo((prevT) => {
const nextTodo = [...prevTodo];
nextTodo[index] = {...nextTodo[index]};
nextTodo[index].completed = e.target.check;
return nextTodo
})
}
const a = {}
useEffect(() => {
},[a])
a.hi = n // effect가 감지 x
a = {} // effect가 감지 o
useEffect(() => {
// 컴포넌트가 마운트될 때 실행
return () => {
// 컴포넌트가 언마운트될 때 실행
}
},[])
useEffect(() => {
a() // todo가 바뀔 때마다 실행
return () => {
b()
// todo가 바뀌기 직전에 실행
}
},[todo])
// useEffect들이 마운트될 때 순차적으로 실행 후 deps배열에 따라 실행
// todo가 a -> b로 변하게 되면 a -> a cleanup -> b 순서로 실행된다.
// 즉 cleanup이 실행된 후 새로 useEffect가 실행되는 순서를 지키고있음.
자료 및 강의 출처 : ZeroCho TV