FrontEnd/Next.js
Next와 Redux 그리고 SSR 이야기
Keravi
2021. 11. 3. 08:56
Next로 넘어가는 이유가 많겠지만,
SSR과 Routing, webpack의 편리성을 주로 생각한다.
Next로 넘어와서 고생한 작업이 이 State 관리를 위해 넣은
Redux 이다.
정확하게 해결한지는 모르겠지만, 처음에 React에서 쓰던 것처럼
Redux를 생각하고 사용하였더니 라우팅을 걸쳐 다른 페이지로 이동하니
State들이 다시 만들어져 초기화가 되는 게 아닌가?
wrapper를 이용하여, store에 접근을 해봤지만, 당연히
클라이언트쪽에서는 새로운 state를 생성하고 있었다.
공식문서도 읽고 구글링도 해봤는데, 결론은 getInitalProps로 해결하자는 것 이었다.
getInitalProps는 검색해보면 알겠지만, 우리 앱의 진입점에서 필요한 state들을 미리 받아
저장해놓는 것이다. ( lifecycle 참조 )
- 앱 진입 시점에서는 우리의 _app.tsx를 거치니까 거기서 initialState를
우리가 원하는 정보로 채워 넣는다 생각하면 편하다.
물론 getInitalProps을 이용하면 퍼포먼스 저하라는 단점을 안고 가야한다.
공식문서에서도, 이런 문제들을 이야기하는데, 보통 다른 예제에서
왜 getState라는 함수를 안쓰고, dispatch만 쓰는지 이해가된다.
이 글을 본다면 여러가지 이유로 state를 redux로 유지하려고 한다는 건데,
만약 auth의 쿠키쪽 문제라면, 공식문서에 cookie 관련 package recommend 가 있으니,
그 패키지를 이용해 보는게 좋을 것같다.