page Router
pages๋๋ ํ ๋ฆฌ๊ฐ root
pages ๋๋ ํ ๋ฆฌ ํ์๋ก
index.js -> ~/ about.js -> ~/about ์ด๋ ๊ฒ ํ์ผ ์ด๋ฆ ๊ธฐ์ค์ผ๋ก ์์์ ๋ผ์ฐํ ํด์ค๋ค.
ํด๋๋ก๋ ๊ฐ๋ฅํ๋ค.
page๋๋ ํ ๋ฆฌ ์์ index.js -> / about/index.js -> /about item/index.js -> /item
์ฟผ๋ฆฌ ์คํธ๋ง(?val=value)
useRouter
- useRouterํ ์ ์ด๋ฆ ๊ทธ๋๋ก ๋ผ์ฐํฐ๊ฐ์ฒด๋ฅผ ์ปดํฌ๋ํธ์์ ์ฌ์ฉํ ์์๊ฒ ๊ฐ์ฒด๋ฅผ ๋ฐํํด์ฃผ๋ ํ ์ด๋ค.
//url:3000/search?val=์ ์ฌ์
const router = useRouter();
const { val } = router.query; //<-val = ์ ์ฌ์
๋์ ๊ฒฝ๋ก (urlParameter)
- url:3000/book/1
- url:3000/book/2 ์ด๋ฐ์์ผ๋ก url์ ์ฐ์ด๋ ๊ฐ๋ณ์ ์ธ ๊ฐ๋ค์ urlParameter๋ผ๊ณ ๋ถ๋ฅธ๋ค.
book๋๋ ํ ๋ฆฌ๋ฅผ ๋ง๋ค๊ณ ๊ทธ ํ์์ [id].tsx๋ฅผ ๋ง๋ค์ด์ค๋ค. ๊ทธ๋ผ next๋ ํ์ผ๋ช ์ด [] ๋ก ๊ฐ์ธ์ ธ ์์ผ๋ฉด ๊ฐ๋ณ์ ์ธ ํ์ด์ง๋ผ๊ณ ํ๋จํ๋ค. id๊ฐ์ ๊บผ๋ด ์ฐ๋ ๋ฒ์ ์์์ ๊ฐ๋ค
const router = useRouter();
const { id } = router.query;
๊ทธ๋ ๋ค๋ฉด - url:3000/book/2/3/5/1/6 ์ด๋ ๊ฒ ํ๊ณ ์ถ์ผ๋ฉด?
catch All segment๋ผ๊ณ ํ๋ค.
[โฆid].tsx ์ด๋ ๊ฒ ํ๋ฉด๋๋ค.
optional catch All segment ๋ผ๊ณ ํ๋ค.
๊ทผ๋ฐ url:3000/book ์ด๋ ๊ฒํ๋ฉด 404๋ฌ๋ค. index.tsx ๋ฅผ ๋ง๋ค์ด๋ ๋์ง๋ง
[[โฆid]].tsx ๋ผ๊ณ ํ๋ฉด๋๋ค.
404๋?
๋ฃจํธ์ 404.tsx ๋ง๋ค๋ฉด ๋์ ใ _ใ