리액트에서
state업데이트
를 할때는-> setState 를 사용
한다
배열을 업데이트
할때는 -> 배열자체에 push하지 않고, concat 함수를 사용
해 기존의 배열을 수정하지 않고, 새로운 배열을 만들어 교체해 업데이트
한다.
리덕스에서 불변성을 유지하는 이유는 내부적으로 데이터가 변경되는것을 감지 하기 위해
shallow equality를 검사하기 때문이다.
리듀서는 이전 상태, 액션객체를 파라미터로 받는다.
이전의 상태는 절대 건들이지 않는다.
변화를 일으킨 새로운 상태 객체를 반환한다.
똑같은 파라미터로 호출된 리듀서 함수는 언제나 똑같은 결과값을 반환한다.
만약 실행할때마다 다른 결과값이 나타야 한다면(순수하지 않은 작업) 리덕스 미들웨어를 사용한다.