page Router

Posted by : on

Category : Frontend2

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 ๋งŒ๋“ค๋ฉด ๋์ž„ ใ…Ž_ใ…Ž