_app.js
파일export default function App({ Component, pageProps }) {
return (
<div>
<header>NATIONS</header>
<Component {...pageProps} />
</div>
);
}
_app.js
import "@/styles/globals.css";
import Layout from "@/components/Layout";
export default function App({ Component, pageProps }) {
return (
<Layout>
<Component {...pageProps} />
</Layout>
);
}
Layout.js
import React from "react";
const Layout = ({ children }) => {
return <div className="Layout">{children}</div>;
};
export default Layout;
{children}
으로 페이지 역할을 하는 컴포넌트들을 main 태그
에 렌더링 시켜줌const SubLayout = ({ children }) => {
return <div className="SubLayout">{children}</div>;
};
export default SubLayout;
import SubLayout from "@/components/SubLayout";
export default function Search() {
return <div>Search Page</div>;
}
Search.Layout = SubLayout;
Search
는 함수이지만 객체로도 활용이 가능Layout
이라는 프로퍼티를 추가SubLayout
에 담아 둠_app.js
에 해당 Layout을 감싸줌import "@/styles/globals.css";
import Layout from "@/components/Layout";
export default function App({ Component, pageProps }) {
return (
<Layout>
<Component.Layout>
<Component {...pageProps} />
</Component.Layout>
</Layout>
);
}