서버 측에서 페이지를 렌더링 하는 것
Client는 원하는 페이지를 Server에 요청
Server는 요청받은 페이지의 데이터를 불러옴
그리고 요청받은 페이지의 완성된 .html을 생성
반환
브라우저는 렌더링
이 완료된 페이지를 화면에 렌더링
리액트 컴포넌트와 같이 자바스크립트로 작성되어 있는 페이지를 실제 HTML 코드로 변환하는 과정
HTML을 화면에 실제로 그려내는 것
페이지별로 다른 렌더링 전략 적용 가능
export default function Home({ name }) {
return <div>{name}</div>;
}
export const getServerSideProps = async () => {
// ssr을 위해 서버측에서 페이지 컴포넌트에게 전달할 데이터를 설정하는 함수
return {
props: {
name: "KOREA",
},
};
};
getServerSideProps
함수를 비동기(async)로 만들어줌객체
를 반환props
라는 프로퍼티가 반드시 있어야 함객체
로 생성되어야 함"/"
이 경로에 접속하기 위해 요청을 보내면getServerSideProps
함수를 실행Home
컴포넌트를 호출따라서 함수 내에 콘솔을 확인하면
(비교) 리액트에서 api를 호출했을 때(CSR 방식)
import SubLayout from "@/components/SubLayout";
export default function Search() {
return <div>Search Page</div>;
}
Search.Layout = SubLayout;
export const getServerSideProps = async (context) => {
console.log(context);
return {
props: {},
};
};
query
객체가 존재 const { q } = context.query;