Home Catch all URL
Post
Cancel

Catch all URL

๐Ÿ“Œ Catch all URL

์–ด๋–ค URL์ด๋˜ catch ํ•ด๋‚ด๋Š” url ํ•ญ์ƒ์€ ์•„๋‹ˆ์ง€๋งŒ ํ•„์š”ํ•œ ์ˆœ๊ฐ„์ด ์žˆ์Œ

์˜ˆ๋ฅผ ๋“ค์–ด ์˜ํ™” ์ œ๋ชฉ์„ url์— ๋„ฃ์–ด SEO์— ์ข‹์Œ

ํŒŒ์ผ๋ช…์„ [โ€ฆid].js ์ฒ˜๋Ÿผ ์•ž์— โ€ฆ ์„ ๋ถ™์—ฌ์ค€๋‹ค.

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2023-03-09 แ„‹แ…ฉแ„’แ…ฎ 7 55 31

1
2
3
4
5
const router = useRouter();

const onClick = (id: string, title: string) => {
  router.push(`/movies/${title}/${id}`);
};

/movies/${title}/${id}๋กœ url์„ ์ด๋™์‹œํ‚ฌ๋•Œ router๋ฅผ ๋“ค์—ฌ๋‹ค๋ณด๋ฉด

๋ฐฐ์—ด์˜ ํ˜•ํƒœ๋กœ params๊ฐ€ ์ƒ์„ฑ๋œ๊ฒƒ์„ ๋ณผ์ˆ˜ ์žˆ๋‹ค.

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2023-03-09 แ„‹แ…ฉแ„’แ…ฎ 7 55 50

แ„‰แ…ณแ„แ…ณแ„…แ…ตแ†ซแ„‰แ…ฃแ†บ 2023-03-09 แ„‹แ…ฉแ„’แ…ฎ 7 55 45

1
2
3
4
5
const router = useRouter();

console.log(router);

const [title, id] = router.query.params;

์ƒˆ๋กœ๊ณ ์นจํ•˜๋ฉด ๋ฐฑ์—”๋“œ์—์„œ pre-render๋˜๊ธฐ ๋•Œ๋ฌธ์— router.query.params ๊ฐ€ ์—†์–ด ์˜ค๋ฅ˜๊ฐ€๋‚จ

1
2
// || [] ๋ถ™์–ด์„œ ์ดˆ๊ธฐ๊ฐ’ ๋ฐฐ์ •
const [title, id] = router.query.params || [];

๋งˆ๋ฌด๋ฆฌ๋กœ SEO ์ตœ์ ํ™”๋ฅผ ์œ„ํ•ด getServerSideProps๋ฅผ ์ด์šฉ

1
2
3
4
5
6
export function getServerSideProps({ params: { params } }: any) {
  return {
    props: {
      params,
    },
  };
This post is licensed under CC BY 4.0 by the author.