https://gall.dcinside.com/mgallery/board/view/?id=github&no=78155&page=2
생성, 수정 페이지는 ssr 안 쓰는 게 낫지않음?
그냥 스피너나 스켈레톤 보이더라도클라단에서 값 받아와서 보여주는 게 더 낫지?
gall.dcinside.com
이글쓴 갤럼임.
간단하게 코드를 짜왔음.
1. room-ssr: Hydration API 로 prefetch해서 ssr로 데이터 가져옴.
2. room-csr: 그런거 없음.
코드 돌려보면
room-ssr는 스피너 안 뜨고
room-csr는 스피너 뜨다가 인풋 나타남.
당연히 seo 필요한 페이지는 (room detail 페이지)
1번 방식 쓰는 게 좋겠다만
게시글 수정 페이지 같은 경우는 seo 필요 없으니
스피너나 스켈레톤 띄운다쳐도
서버에서 데이터 미리 가져와서 렌더링할 필요 없는 거 아님?
반대로 서버에서 데이터를 미리 가져와 완전한 HTML을 제공해야하는 페이지는 room-ssr 방식 쓰는 게 좋고
스프링만 하다 프론트 하려니 힘들다 ;ㅅ;
참고로 질문글임. 틀렸으면 왜 틀렸는지 알려주면 정말 ㄱㅅㄱㅅ하겠슴
서버 컴포넌트에서 로딩 스피너 뜨게 하려면 next가 제공하는 기능인 loading.tsx 쓰셈
오 지금 저 코드에 loading.tsx 추가해봄
ㄴㄴㄴ 내가 궁금한 건 ssr는 서버 리소스 사용이 증가하니 ssr 필요없는 페이지는 room-csr 형식으로 해도 되지 않냐 이거임. 그래도 loading.tsx에 대해서는 자세히 알게 됐음 감사감사
서버 컴포넌트로 해야되냐 클라이언트 컴포넌트로 해야되냐를 묻는 것 같은데, 원래 next app router는 서버 컴포넌트가 디폴트고 유저 인터렉션 발생하는 컴포넌트에는 use client 붙여서 클라이언트 컴포넌트로 만드는거임 ssr이 필요없으니까 만든다의 개념이 아닐걸?
nextjs에서 csr 하기 이런 식으로 해서 개념부터 다시 찾아볼게 ㄱㅅㄱㅅ
seo랑 스피너 띄우는거랑 뭔 상관인지 모르겠고 수정페이지면 기존 데이터 보여줄텐데 서버서 미리 안땡겨올거임?
처음에는 들어가자마자 인풋에 아이디, 디스크립션 다 띄워진 상태로 나타내는 게 이쁘지 않을까 싶었지만 seo도 필요없고 돈도 아끼려면 그냥 스피너 나타냈다가 나타내는 방식으로 바꾸는 게 낫지 않을까 싶어서
원티드도 my페이지 보면 스켈레톤 나타내는 식으로 하더라고
스피너보이게 하려면 Suspense 써야하지않나