Nextjs에서 hydration과정과 거기서 발생하는 missMatch에러에 대해 알아보자
html
파일이 client로 보내진다.JS
파일이 그 뒤에 client로 보내지고 그 JS파일이 1의 html파일에 적용된다 (이 과정을 hydration이라고함). 이 과정에서 추가적인 렌더링이 발생한다 (두번째 렌더링)위 코드를 실행시키면 아래와같은 에러가 발생한다
이는 hydration과정에서 text가 missMatch되었기 때문에 발생하는데 (에러는 친절하게 정확히 어떤 텍스트인지 까지는 알려주지못한다.)
Next의 공식문서를 따라가보면 ( https://nextjs.org/docs/messages/react-hydration-error )
useState
와 useEffect
를 사용하여 해결하라고한다.
아마 useEffect를 통해 부수효과를 일으켜 서버와의 데이터를 현행화 시키는방법인거같다.
즉 위처럼 부수효과를 return문 밖에서 처리하면 missmatch가 일어날일이 사라지게된다.