필요한 부분만 정리했습니다...!
1. Recoil 핵심 컨셉
1. react 내부상태만 이용
2. 작은 atom 단위로 관리
3. 순수함수 selector
4. Re-Render 최소화
5. 데이터 흐름을 따라감
여러 상태에 연관된 컴포넌트들을 유기적으로 관리할 수 있다.
2. Selector
1. getter 와 setter 를 직접 정의할 수 있음
getter 는 필수적으로 가지고 있고,
setter 는 선택적으로 정의할 수 있다.
출처 : https://youtu.be/0-UaleJZOw8 김현태님의 발표자료
2. 상태를 읽고 쓸 때 데이터 가공, 유효성 검사 등 부수적인 로직을 추가할 수 있다.
3. selector 내부에서 다른 atom 이나 다른 selector 를 참조할 수 있다.
Recoil 에서는 이를 구독
한다고 표현한다.
이렇게 구독이 되면 다른 데이터들에 대해서 의존성을 갖게된다.
3. selectorFamily
기존에 구독하고 있던 인덱스 값을 매개변수로 받을 수 있게 된다.
4. 비동기 데이터를 갱신하는 방법
새로운 데이터를 받아오지 못하는 이유는...
데이터를 가져오는 시점과 실제 데이터를 사용하는 시점이 다른 경우에 발생한다...
이 때문에 비동기 데이터를 갱신하는 방법이 필요하다.
4-1. 비동기 데이터 갱신에 영향을 주는 요소
- 내부에서 구독중인 다른 recoil state의 변경을 감지한 경우
- 요청 파라메터가 완전 새로운 값으로 변경된 경우