NEXT.JS : Dynamic Routes

<angeLog/>ยท2024๋…„ 3์›” 24์ผ
0

NEXT.JS

๋ชฉ๋ก ๋ณด๊ธฐ
7/7
post-thumbnail

๐Ÿ’ก๋…ธ๋งˆ๋“œ์ฝ”๋” ๋‹ˆ๊ผฌ์Œค์˜ ๊ฐ•์˜๋ฅผ ๋ณด๋ฉฐ ๊ณต๋ถ€ํ•˜๋Š” ์‹œ๋ฆฌ์ฆˆ์ž…๋‹ˆ๋‹ค.

Dynamic Routes?

http://www.์‚ฌ์ดํŠธ๋ช….com/์นดํ…Œ๊ณ ๋ฆฌ/ํŽ˜์ด์ง€

์œ„์™€ ๊ฐ™์ด ๊ฒฝ๋กœ๊ฐ€ ๊ณ ์ •๋˜์–ด์žˆ๋Š” route๋Š” static route๋ผ๊ณ  ํ•œ๋‹ค. ๊ทธ ๋ฐ˜๋Œ€๋กœ ๊ฒฝ๋กœ๊ฐ€ ๊ณ ์ •์ ์ด์ง€ ์•Š์€ route๋ฅผ Dynamic route๋ผ๊ณ ํ•˜๋Š”๋ฐ ๋„๋Œ€์ฒด ๊ฒฝ๋กœ๊ฐ€ ๊ณ ์ •์ ์ด์ง€ ์•Š๋‹ค๋Š” ๋ง์ด ๋ฌด์—‡์ผ๊นŒ?

http://www.์‚ฌ์ดํŠธ๋ช….com/์นดํ…Œ๊ณ ๋ฆฌ/:id

๋˜‘๊ฐ™์€ ํŽ˜์ด์ง€๋ฅผ ๋ณด์—ฌ์ฃผ๋”๋ผ๋„ ๋ณ€์ˆ˜๋ฅผ ์ด์šฉํ•˜์—ฌ ๋ณ€์ˆ˜์˜ ๊ฐ’์— ํ•ด๋‹นํ•˜๋Š” ํŽ˜์ด์ง€๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ Dynamic route์ด๋‹ค.

NEXT์—์„œ Dynamic Routes์‚ฌ์šฉํ•˜๊ธฐ

์˜ˆ๋ฅผ ๋“ค์–ด์„œ MOVIE๋ผ๋Š” ์นดํ…Œ๊ณ ๋ฆฌ์•ˆ์—์„œ id์— ๋”ฐ๋ฅธ ํŽ˜์ด์ง€๋ฅผ ๋ณด์—ฌ์ค€๋‹ค๊ณ  ํ•˜๋ฉด [๋Œ€๊ด„ํ˜ธ]ํด๋”๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ๋œ๋‹ค.

export default function MovieDetail(props) {
  console.log(props);
  return <h1>movie</h1>;
}

MovieDetail์—์„œ ์–ด๋–ค props๋ฅผ ๋ฐ›๋Š”์ง€ ์ฝ˜์†”๋กœ ํ™•์ธํ•ด๋ณด๋ฉด, params๋กœ id์™€ searchParams๋ฅผ ๋ฐ›์•„์˜ค๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด id๋Š” [id]ํด๋”์—์„œ ์˜ค๋Š” ๊ฐ์ฒด์ด๋‹ค. ์ด๋•Œ ์ฝ˜์†”์€ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์•„๋‹Œ ์„œ๋ฒ„์˜ ์ฝ˜์†”์„ ์˜๋ฏธํ•œ๋‹ค.

๋ธŒ๋ผ์šฐ์ €์—์„œ๋Š” ์•„๋ฌด๊ฒƒ๋„ ์ฐํžˆ์ง€ ์•Š๋Š”๋ฐ, ์ด๋Š” [id]ํด๋”๊ฐ€ CSR๊ฐ€ ์•„๋‹Œ SSR์ž„์„ ์•Œ ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์ด๋‹ค.

๊ณต์‹๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•˜๋ฉด ์กฐ๊ธˆ๋” ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๋‹ค.
๐Ÿ‘‰๐ŸปNEXT๊ณต์‹๋ฌธ์„œ page.js

profile
์ผ๋‹จ ํ•ด๋ณผ๊ฒŒ์š”!โœ๐Ÿป

0๊ฐœ์˜ ๋Œ“๊ธ€