서버 컴포넌트 렌더링 질문
98
작성한 질문수 2
안녕하세요 선생님. "Suspense로 Streaming하여 최적화하기(feat. loading.tsx, error.tsx)" 강의 내용중에 궁금한점이 있어 질문드립니다.
강의에서 5:42 ~ 6:35 시간 구간에서의 내용에 관해서 이해가 잘 안되는 부분이 있는데요. 홈 화면에 처음 들어올 때에는 로딩스피너가 안보이고 탐색하기 등 다른 페이지에서 홈 화면으로 들어오면 로딩스피너가 보이는 이유를 설명해주시는 부분입니다.
홈 화면에 처음 들어왔을 때에는 홈 화면에 해당하는 page.tsx를 서버에서 다 그려주기 때문에 로딩 상태가 없어서 로딩스피너가 안보이고, explore에 있다가 클라이언트에서 홈으로 넘어갈 때에는 explore에서 홈 페이지를 새로 로딩을 하기 때문에 로딩 스피너가 뜨는거라고 설명해주셨는데요. "explore에서 홈 페이지를 새로 로딩을 한다" 라는게 무슨 말인지 잘 모르겠습니다 ㅠ page.tsx가 CSR이 된다는 것인가요?
저는 어떤 페이지에 들어오면 그 페이지에 해당하는 page.tsx가 실행되는걸로 알고 있었는데 아닌가요? 홈의 page.tsx는 서버 컴포넌트인데 왜 홈에 처음 들어왔을 때만 page.tsx가 서버에서 실행되고 그 이후에는 마치 클라이언트에서 데이터 패칭하고 그에 따라 렌더링이 되는것처럼 "로딩"이라는 상태가 존재하는것인지가 궁금합니다.
답변 1
0
next.js는 첫 페이지 로딩만 SSR이고 그 다음 페이지부터는 CSR처럼 동작합니다. 물론 그 때도 서버 컴포넌트는 서버에서 실행되긴하지만 결과물은 JSON같은 형식으로 클라이언트에 전송되어 CSR됩니다.
0
아하.. 그럼 서버 컴포넌트가 실행된 결과물이 JSON같은 형식으로 클라이언트에 전송되어 "CSR 된다"는게 그 json같은 결과물을 클라이언트 측에서 해석하고 실제 DOM트리로 그리는 건가요? 그리고 그 과정에서 로딩 상태가 발생하는 것이구요
캡처링부분 질문있습니다.
0
98
2
깃에 소스코드를 찾을 수 없습니다.
0
130
2
useInfiniteQuery promise와 react use 사용시 페이지 무한 로딩
0
105
1
import 파일 경로를 찾지 못 해서 에러가 발생합니다.
0
124
2
css 라이브러리 추천 부탁드립니다
0
159
2
팔로우 추천 목록이 빈 배열로 들어옵니다.
0
139
1
게시물 업로드 시 userId가 undefined로 들어가는 오류
0
124
1
useSuspenseQuery 사용 시 SSR 401 이슈 관련
0
181
1
리액트 쿼리 useinfinitequery 무한스크롤 구현 시 페이지가 이동할 경우 데이터가 보존되게 할 수 있나요??
0
198
3
폴링이 필요없는 이유
0
103
2
next Request Memoization과 react cache
0
116
2
seo 최적화 기준은 데이터 fetching인가요 아님 데이터 렌더링인가요?
0
92
2
next.js 서버fetch 에러 fallback ui 구현 방법
0
176
2
프레임워크 여론 파악법
0
133
2
필터옵션이 많은 페이지에서 서버 fetch를 하는게 맞는걸까요??
0
112
2
서버 fetch suspense 로 감싸고 새로고침 시 잠시 빈 화면이 노출된 후 fallback ui가 노출됩니다.
0
112
2
template.tsx 내 서버fetch 응답값과 클라이언트 컴포넌트 상태값 싱크가 맞지 않는 이슈
0
71
2
Auth.js 사용 시 authorize 함수가 호출되지 않습니다
0
139
2
next.js 에서 로그인에 관하여
0
145
1
Next의 route handler에 대한 질문이 있습니다.
0
103
2
게시판 리스트 만들때 use client를 어디서부터 집어넣어야할지 모르겠습니다
0
105
2
프라이빗 폴더를 해야 하는 이유가 모호한 것 같아요.
0
93
2
vanilla-extract 못찾는 문제
0
237
2
fetch 캐싱과 revalidate 관련
0
95
2





