props의 상태 값에 따라 구동되어야할 함수들이 서로 의존적이지 않고 독립적으로 작성하기 위해서이다.
그래서 props에서 state(상태)가 변경되면, 그에 맞춰서 Action을 해주는 것을 reducer에서 정의하고, dispatch를 이용해서 render에 전달해주는 것이다.
이렇게 작성해야, reducer에서 정의한 상태값에 따라 작동되어야 할 Function(함수)들을 독립적으로 작동되게끔 작성하는 것이 가능하다.
함수도 단순하게 할 수 있으며, 리액트의 (독립적인)컴포넌트 구현 개념과도 일치하게 된다.
조금 더 깊게..
조금 더 깊게 들어가면, dispatch가 전달해주는 action.type의 비교를 메모리 비교를 한다. 그래서, 일일이 조건을 비교할 필요가 없다. 메모리의 값을 바로 비교하기 때문에 속도의 개선이 아주 뛰어나게 일어날 수 밖에 없다. (c++에서 포인터 개념하고 비슷할 것 같다). 메모리를 비교하기 때문에, 속성의 전체를 비교하는 것이 아니라, 이전 속성, 현재 속성. 2개만 비교하면 되고 그걸 메모리 비교하기 때문에 따로 메모리를 만들어서 교체하고 이런 거 없다. 아무튼 좋다.
참고
www.youtube.com/watch?v=SnND3Fj3eJc&list=PLuHgQVnccGMB-iGMgONoRPArZfjRuRNVc&index=9
'React & TypeScript > Recoil' 카테고리의 다른 글
[React / Recoil] 예제로 알아보는 Recoil (컨셉, 환경세팅, Atom, Selector) (0) | 2023.01.09 |
---|---|
[Redux] Redux를 써야 하는 이유? (0) | 2021.02.01 |
댓글