Next.js ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ฉด ๋ณผ ์ ์๋ ๋ ๊ฐ์ง ์ค์ํ ํ์ด์ง๊ฐ ์๋ค.
๋ฐ๋ก _app
๊ณผ _document
์ด๋ค.
์ด ๋ ๊ธฐ๋ณธ ํ์ด์ง์ ์ญํ ์ ๋ฌด์์ด๊ณ ์ ์ฌ์ฉํ๋์ง์ ๋ํด์๋ ์์๋ณด์.
_app
์ ์๋ฒ๋ก ์์ฒญ์ด ๋ค์ด์์ ๋ ๊ฐ์ฅ ๋จผ์ ์คํ๋๋ ์ปดํฌ๋ํธ์ด๋ฉฐ, ํ์ด์ง์ ์ ์ฉํ ๊ณตํต ๋ ์ด์์์ ์ญํ ์ ํ๋ค.
React์ Router.tsx (App.tsx)
์ปดํฌ๋ํธ์ ์ ์ฌํ๋ค๊ณ ๋ณผ ์ ์๋ค.
Next.js uses the App component to initialize pages. You can override it and control the page initialization and:
- Persist layouts between page changes
- Keeping state when navigating pages
- Inject additional data into pages
- Add global CSS
-Next.js ๊ณต์ ๋ฌธ์
๊ณต์ ๋ฌธ์์ ๋ฐ๋ฅด๋ฉด ์ฃผ๋ก ์ฌ์ฉํ๋ ์ํฉ์ ์ด๋ฌํ๋ค.
A custom Document can update the
<html>
and<body>
tags used to render a Page. This file is only rendered on the server, so event handlers like onClick cannot be used in_document
. -Next.js ๊ณต์ ๋ฌธ์
_document
๋ _app
๋ค์์ ์คํ ๋๋ฉฐ, ๊ณตํต์ ์ผ๋ก ํ์ฉ ํ ๋ฉํ ํ๊ทธ ํน์ body ํ๊ทธ ์์ ๋ค์ด๊ฐ ๋ด์ฉ๋ค์ ์ปค์คํ
ํ ๋ ์ฐ์ธ๋ค.
๋ ์ด ํ์ผ์ ์๋ฒ์์๋ง ์คํ๋๊ธฐ ๋๋ฌธ์ onClick
๊ฐ์ ์ด๋ฒคํธ๋ ์ฌ์ฉํ ์ ์๋ค.
React์ index.html
๊ณผ ์ ์ฌํ๋ค๊ณ ๋ณผ ์ ์๋ค.
_document
๋ฅผ ์ดํด๋ณด๋ฉด ์ด๋ฌํ ํํ๋ก ๋์ด์๋ค.
import { Html, Head, Main, NextScript } from 'next/document'
export default function Document() {
return (
<Html>
<Head />
<body>
<Main />
<NextScript />
</body>
</Html>
)
}
๋ ์ด ์ฝ๋๋ฅผ ๋ณด๋ฉด ์ ์ ์๊ฒ ์ง๋ง, ์ฌ๊ธฐ์ ์ฌ์ฉํ๋ Head
๋ next/head
๊ฐ ์๋ next/document
๋ชจ๋์์ ๋ถ๋ฌ์์ผ ํ๋ค๋ ๊ท์น์ด ์๋ค.
_app
์ ํ์ด์ง์ ์ ์ฉํ ๊ณตํต ๋ ์ด์์์ ์ญํ ์ ํ๋ฉฐ React์ Router.tsx (App.tsx)
์ปดํฌ๋ํธ์ ์ ์ฌํ๋ค๊ณ ๋ณผ ์ ์๋ค.
_document
๋ ๊ณตํต์ ์ผ๋ก ํ์ฉ ํ ๋ฉํ ํ๊ทธ ํน์ body ํ๊ทธ ์์ ๋ค์ด๊ฐ ๋ด์ฉ๋ค์ ์ปค์คํ
ํ ๋ ์ฌ์ฉํ๋ฉฐ React์ index.html
๊ณผ ์ ์ฌํ๋ค๊ณ ๋ณผ ์ ์๋ค.