Next.js router.pathname 이 변하지 않는 문제

백경·2022년 7월 29일
0

문제

next.js 로 개발중에 일부 동작이 의도한대로 돌아가지 않는다는 것을 확인했다.
그 중에서는 router.pathname 이 변경되지 않는 다는 문제가 있었다.

해결

해결을 위해서는 router.pathname 을 사용하지 못하고 location.href 를 사용했다.
당연히 서버렌더링시에는 location 이 존재하지 않기 때문에
client-side 에서만 동작하도록 만들었다.

생각

이때의 router 는 useRouter 로 사용한 것으로 'next/router' 이다.
머리를 환기를 좀 시키고 생각해보니 이는 서버 상에서의 router 동작이 아닌가 싶다.

그런데 클라이언트 상에서 url 이 변경될 경우가 있는데 이때에는 next 상에서 돌아가는 게 아니라 의도한대로 체크가 안 된 것이 아닌가 하는 생각이 든다.

좀 더 찾아보니 router.asPath 를 사용할 경우에는 의도한대로 location.href 의 역활을 대체할 수 있는 것 같다.

next.js 를 도입하면서 react 나 기존의 document 환경에서 익숙하다보니 생각하고 익숙했던데로 개발을 진행하니 문제가 발생하였다.
여유가 있을때 next.js 관련된 문서 같은걸 찾아봐야겠다.

흠.. 근데 이런건 실제로 겪어봐야 알 지도?

profile
Let me introduce myself as an FE developer.

0개의 댓글