일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- route
- 라우팅
- imagePreview
- react
- qwe
- 접근 제한 라우팅
- FileReader
- 배포
- Redux
- useEffect
- S3
- CI/CD
- 항해99
- 채팅방
- setstate
- 개발
- 후기
- 스파르타코딩클럽
- Preview
- Github Actions
- 비동기
- 브라우저 렌더링
- 7기
- 동기
- socket.io
- 미리보기
- previousState
- rendering
- updater
- routing
- Today
- Total
삐옹
면접 대비 #2 - 리액트 전역 상태 관리 본문
리액트에서 전역 상태 관리는 어떻게 이루어지나요?(redux 기준)
전역 상태를 위해 Redux, Context APi, Mobx, recoil 등의 라이브러리를 이용할 수 있습니다.
그 중 대표적인 redux로 설명을 하자면
컴포넌트에서 액션크리에이터로 액션을 발생시키고 그 액션을 디스패치를 통해 실행시킵니다. 그러면 reducer에서는 해당 액션과 매칭되는 액션이 있는지 확인하고 데이터를 업데이트 시킵니다. 이 모든것을 store라는 하나의 저장소에서 관리합니다
recoil 사용 이유?(*난 recoil을 사용했다)
애플리케이션의 규모가 커질 수록 전달해야 하는 props들이 많아지게 되는데 이 경우 코드가 지저분해지고 상태값 관리가 복잡해져 props-drilling이 일어나게됩니다. 이를 막기위해 Redux에서는 store라는 하나의 저장공간에서 모든 상태값을 관리하도록 했습니다. 하지만 redux를 사용할 떄 store, action, reducer같이 신경써야할 boiler plate가 많았고 비동기 데이터를 불러올 때도 redux-sage나 redux-thunk 같은 소스들이 추가적으로 필요했습니다. 직접 recoil을 사용해보니 전역상태관리를 위한 설정이 쉬웠고 recoil에서 지원하는 훅을 이용해 get,set을 하기에 react 문법과 비슷한 부분이 많아 recoil을 사용하게 되었습니다.
✅예상 추가질문
recoil 간단히 설명해주세요
recoil의 상태 관리 단위인 atoms, atoms나 다른 selector의 상태를 받아 동적인 데이터를 반환하는 순수함수 selector, 전역상태 get/set을 위한 hooks 세가지로 이루어져 있습니다.
🙇🏻참고
https://abangpa1ace.tistory.com/212