[๐Ÿ“–]React-Params, Query, Hash ๊ฐ’ ์ถ”์ถœ

๊ทค๋…น์ฐจยท2025๋…„ 5์›” 20์ผ
post-thumbnail

1๏ธโƒฃParams (๊ฒฝ๋กœ ํŒŒ๋ผ๋ฏธํ„ฐ)

import { useParams } from 'react-router-dom';

function CanvasDetail() {
  const { id } = useParams();
  return (
    <>
      <div>
        <h2>param ์ถ”์ถœ</h2>
        <p>param : {id}</p>
      </div>
    </>
  );
}

export default CanvasDetail;

๐Ÿ”ธuseParams() ํ›…์„ ์‚ฌ์šฉํ•ด URL ๊ฒฝ๋กœ์— ํฌํ•จ๋œ :id์™€ ๊ฐ™์€ ๋™์  ๊ฐ’์„ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ๋‹ค.

2๏ธโƒฃQuery String (์ฟผ๋ฆฌ ๋ฌธ์ž์—ด)

import { useParams, useSearchParams } from 'react-router-dom';

function CanvasDetail() {
  const { id } = useParams();
  const [searchParams] = useSearchParams();

  return (
    <>
      <div>
        <h2>param ์ถ”์ถœ</h2>
        <p>param : {id}</p>
        <p>keword : {searchParams.get('keyword')}</p>
      </div>
    </>
  );
}

export default CanvasDetail;

๐Ÿ”ธuseSearchParams() ํ›…์„ ์‚ฌ์šฉํ•ด URL์˜ ์ฟผ๋ฆฌ ๋ฌธ์ž์—ด ๊ฐ’์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.
๐Ÿ”ธsearchParams.get('keyword') ํ˜•ํƒœ๋กœ ์›ํ•˜๋Š” ๊ฐ’์„ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ๋‹ค.

3๏ธโƒฃHash (ํ•ด์‹œ, ํ”„๋ž˜๊ทธ๋จผํŠธ)

import { useParams, useSearchParams, useLocation } from 'react-router-dom';

function CanvasDetail() {
  const { id } = useParams();
  const [searchParams] = useSearchParams();
  const location = useLocation();

  return (
    <>
      <div>
        <h2>param ์ถ”์ถœ</h2>
        <p>param : {id}</p>
        <p>keword : {searchParams.get('keyword')}</p>
        <p>hash : {location.hash}</p>
      </div>
    </>
  );
}

export default CanvasDetail;

๐Ÿ”ธ useLocation() ํ›…์„ ์‚ฌ์šฉํ•˜๋ฉด URL ์ „์ฒด ์œ„์น˜ ์ •๋ณด์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.
๐Ÿ”ธ location.hash๋ฅผ ํ†ตํ•ด # ์ดํ›„์˜ ํ•ด์‹œ๊ฐ’์„ ์ถ”์ถœํ•  ์ˆ˜ ์žˆ๋‹ค.

profile
๋ฐฐ์šฐ๋Š” ๊ณผ์ •์— ์ฆ๊ฑฐ์›€์„ ๋А๋ผ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

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