Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 이벤트 수식어
- 프로그래머스 데브코스
- 폼 입력 바인딩
- 프로그래머스 데브코스 프론트엔드
- SCSS import
- 프로그래머스 K_Digital Training
- netlify redirect
- 쌓임맥락
- KDT 프로그래머스
- SCSS extend
- flex
- git 같은계정 다른 컴퓨터
- 고양이 사진 검색기
- 프로그래머스 프론트엔드 데브코스
- SCSS forward
- vue 지역 컴포넌트
- vue 이벤트 수신
- nextjs사용법
- intersection opserver
- Vue
- vuex map
- 리액트
- react next
- Spacer
- vue mixin
- KDT 프로그래머스 데브코스 프론트엔드
- 리스트 렌더링
- 다른컴퓨터에서 git사용
- SCSS use
- postcss
Archives
- Today
- Total
혼자 적어보는 노트
[Next.js] 페이지마다 다른 Layout 본문
next.js layout 구현
react에서 페이지마다 다른 layout을 구현해야 했을 때
각각 페이지마다 pageContainer를 넣고 props를 통해 header에 나타나는 요소들을을 제어했었다.
Next에서도 그렇게 작업을 해야 하나 했었는데 알아본 결과 조금은 다른 방식으로 Layout을 제어할 수 있었다.
공식문서에 활용 예시가 굉장히 상세하게 설명되어있다!
_app.tsx
import Layout from '~/components/common/Layout';
export type NextPageWithLayout = NextPage & { getLayout?: (page: ReactElement) => ReactNode };
type AppPropsWidthLayout = AppProps & { Component: NextPageWithLayout };
function MyApp({ Component, pageProps }: AppPropsWidthLayout) {
const getLayout = Component.getLayout || ((page) => <Layout>{page}</Layout>);
return getLayout(<Component {...pageProps} />);
}
전체 페이지를 감쌀 Layout 컴포넌트를 만들고 component를 감싸주는 코드를 작성해주었다.
CourseCreate.getLayout = function getLayout(page: ReactElement) {
return <Layout full>{page}</Layout>;
};
Layout 변경이 필요한 페이지에는 props 를 통해 변경 가능하도록 지정해주어
페이지마다 다른 레이아웃을 구현할 수 있다.
'NextJS' 카테고리의 다른 글
[Next.js] 카카오톡 공유하기 (0) | 2022.08.13 |
---|---|
[Next.js] router.query 값 가져오기 (0) | 2022.08.04 |
[Next.js] Image height auto 사용 (0) | 2022.07.30 |
[Next.js] Link와 href (0) | 2022.07.29 |
[Node.js] 로그인 구현하기 / Express, MySQL (0) | 2022.03.19 |
Comments