개발자

next.js에서 per-page layout이 가능한 이유?

2022년 10월 14일조회 399

안녕하십니까 Next.js 공부중에 per-page layout이라는 것이 있는데 이게 기술적으로 어떻게 가능한 것인지 설명해 주실 분 계신가요? 저는 이해가 잘 안돼서 여쭤봅니다. https://nextjs.org/docs/basic-features/layouts#per-page-layouts 미리 감사드립니다!

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 1

손정현님의 프로필 사진

안녕하세요! 보고 계신 공식 문서에 기술적으로 가능한 이유가 나오는 것 같습니다. "This layout pattern enables state persistence because the React component tree is maintained between page transitions. With the component tree, React can understand which elements have changed to preserve state." Next.js를 사용하더라도 client-side navigation을 사용하면 SPA로 만들 수 있습니다. (Next.js의 Link 컴포넌트를 사용한 페이지 이동이 client-side navigation의 예시) 이후는 React의 컴포넌트 트리가 페이지 이동 간 유지되는 기능을 활용하는 것 같습니다. next 문서의 예시를 따르면, MyApp의 컴포넌트 트리는 <Layout> <NestedLayout> // 페이지 레벨 레이아웃 <PageComponent /> </NestedLayout> </Layout> 이런 형태가 될 것 입니다. 여기서 만일 PageComponent를 Page2Component로 바꾼다고 가정해봅시다. 그리고 PageComponent와 Page2Component가 동일한 Layout과 NestedLayout을 사용한다면, 리액트는 두 컴포넌트를 유지한채로 PageComponent만 Page2Component로 바꿀 것 입니다. 이렇게되면 Layout과 NestedLayout은 상태를 유지한채로 (브라우저에) 동일하게 보여질 것입니다. 말씀하신 per-page layout은 persistent layout patterns in Next.js라는 블로그에 더 자세히 나와있는 것 같으니 참고하시면 좋을 것 같습니다 :) https://adamwathan.me/2019/10/17/persistent-layout-patterns-in-nextjs/

profile picture

익명

작성자

2022년 10월 17일

상세한 답변과 참고 자료 감사드립니다! 도움이 정말 많이 되었습니다 :)

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!