tooktak / find-game-friend-front

https://find-game-friend-front.vercel.app
0 stars 0 forks source link

[FE] State 관리 #22

Open hwanfront opened 2 years ago

hwanfront commented 2 years ago

Global State 관리에 대해서 필요한 이유 예시) 로그인 관련 정보를 부모 컴포넌트 - 하위 컴포넌트 - 하위 컴포넌트 - ... 넘겨주기 귀찮음

  1. 그냥 react에서 기본 제공하는 Context 를 쓴다 (지금 사용 중, 별다른 문제는 없지만 커질수록 관리가 귀찮아 질수도?)
  2. 에러메시지가 뜨긴 하지만 나중에 더 복잡해질 수 있으니까 recoil 을 쓴다 (편함, react-query 랑 같이 쓰는 글이 꽤 있어서 써봤는데 이슈가 있음)
  3. redux + redux-thunk 를 쓴다 (작성하기 귀찮음)
  4. redux-toolkit 을 쓴다 (잘 모르는데 대충 redux + redux-thunk 를 작성하기 용이하게 만든듯?)

단, Redux 쓰려면 기존에 사용하던 react-query를 각각 redux-safa, rtk toolkit 으로 바꿔야 할수도? 이건 알아봐야함

hwanfront commented 2 years ago

recoil 도입 시 문제점

사실 편하기도 하고 비동기(api) 불러오는 데 사용되는 react-query 랑 많이 사용해서 추가해봤는데 이슈가 있어서 흠...

nextjs 는 SSR 렌더링, 서버에서 사용자에게 보여줄 페이지를 모두 구성하여 사용자에게 페이지를 보여주는 방식 .

Expectation Violation: Duplicate atom key "userInfo". This is a FATAL ERROR in production. But it is safe to ignore this warning if it occurred because of hot module replacement. image

해당 에러는 recoilatom 또는 selector 라는 개념이 여러 번 호출되었을 때 뜨는 에러

원래 react 같은 경우에는 단일 SPAatom 이 한 번 호출되는데 , hot reloading 될 때 파일 변경으로 인해 전체 파일이 다시 빌드되면 atom이 다시 호출되는 경우 저런 메시지가 출력 됨 이거와 관련되서 이슈가 열려있긴 하지만 딱히 고쳐질 것 같진 않을 것 같고, (1년 반 동안 open 상태) 아직까지는 에러메시지가 뜨더라도 멀쩡히 동작하긴 하는데 SSR 관련해서 비슷한 이슈가 있고, 차후에 문제가 될지 알 수 없음

hwanfront commented 2 years ago

CONCENT

redux

redux-toolkit

단, reduxredux-toolkit 으로 바꿀 경우, 기존 react-query 로 작성된 것도 rtk-queryredux-saga 로 바꾸는 게 맞을지도? 현재 react-query 로 작성된 부분이 그렇게 많지는 않을거임 아마도