[Next.js] (3) - Page Router (๊ทธ๋ฆฌ๊ณ Next ๊ธฐ๋ณธ๋์๊ตฌ์กฐ)
2024. 11. 4. 07:11ใfront-end/Next.js
728x90
๐ Page Router
- ํ์ฌ ๋ง์ ๊ธฐ์ ์์ ์ฌ์ฉ๋๊ณ ์๋ ์์ ์ ์ธ ๋ผ์ฐํฐ
- React Router ์ฒ๋ผ ํ์ด์ง ๋ผ์ฐํ ๊ธฐ๋ฅ์ ์ ๊ณต
๐ ํ๋ฆฌํ์นญ(Pre-fetching) - ๋น ๋ฅธ ํ์ด์ง ์ด๋์ ์ํด ์ ๊ณต๋๋ ๊ธฐ๋ฅ!
- ์ด๋ํ ๊ฐ๋ฅ์ฑ์ด ์๋ ํ์ด์ง๋ฅผ ๋ฏธ๋ฆฌ ๋ถ๋ฌ์ค๋ ๊ธฐ๋ฅ
- ๊ฒฝ๋ก๋ณ๋ก ์ปดํฌ๋ํธ๋ค์ Spliting ํด์ ์ ์ฅ์ ๋ฏธ๋ฆฌ ํด๋์
- ํ์ฌ ํ์ด์ง์๋ง ํ์ํ JS Bundle๋ง ์ ๋ฌ ๋จ
- ์์ฒญ๋ ํ์ด์ง์ JS Bundle ๋ง ๋ถ๋ฌ์ค๊ธฐ ๋๋ฌธ์ Hydration ๋น ๋ฅด๊ฒ ๊ฐ๋ฅ (์ฉ๋ ๊ฒฝ๋ํ)
- Pre Feching ์ผ๋ก ์ฐ๊ฒฐ๋ ๋ชจ๋ ํ์ด์ง์ JS Bundle ํ์ผ์ ๋ฏธ๋ฆฌ ๋ถ๋ฌ์ด
- ๊ฐ๋ฐ๋ชจ๋์ผ ๊ฒฝ์ฐ์๋ Pre Feching์ด ์ ์ฉ๋์ง ์์ Build ํ production ๋ชจ๋๋ก ์คํํด์ค์ผํจ
- Link Component๋ก ์ด๋ค์ง์ง ์์ ๊ฒฝ์ฐ, Pre Fetching ์ด ์ด๋ค์ง์ง ์์
- Programmatic ํ๊ฒ Pre Fetching ์ ํ๊ณ ์ถ์ ๊ฒฝ์ฐ router ๊ฐ์ฒด์ prefetch ํจ์๋ฅผ ์ฌ์ฉํจ
const onClickButton = () => {
router.push('/test')
}
//mount ๋ ๋๋ง ํ ๋ฒ ์คํ
useEffect(() => {
router.prefetch('/test')
}, [])
- Pre Fetching ์ ๋ช ์์ ์ผ๋ก ํด์ ํ๊ณ ์ถ์ ๊ฒฝ์ฐ
<Link href="/search" prefetch={false}>
search
</Link>
๐ API Routes - API๋ฅผ ๊ตฌ์ถํ ์ ์๊ฒ ํด์ฃผ๋ ๊ธฐ๋ฅ
export default function handler(req: NextApiRequest, res: NextApiResponse) {
const date = new Date()
res.json({ time: date.toLocaleDateString() })
}
Next.js ๊ธฐ์ด๊ฐ์ ๋งค์ฐ ์ถ์ฒ : )
์ถ์ฒ: https://www.inflearn.com/course/%ED%95%9C%EC%9E%85-%ED%81%AC%EA%B8%B0-nextjs/dashboard
728x90
'front-end > Next.js' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Next.js] (5) - ์ฌ์ ๋ ๋๋ง (SSR, SSG) (0) | 2024.11.05 |
---|---|
[Next.js] (4) - App Router (2) | 2024.11.01 |
[Next.js] (2) - ์ฌ์ ๋ ๋๋ง (0) | 2024.10.31 |
[Next.js] (1) - React.js ์ ์ฉ์ ์น ๊ฐ๋ฐ 'Framework' (0) | 2024.10.31 |