[React] useParams

박성수·2022년 11월 6일
0
post-thumbnail

useParams는 RestFul API의 경로상 달라지는 부분을 추적해온다.

라우터를 다음과 같이 설정해준다.

<Route path="/detail/:id" element={<Itemdetail />} />
<Route path="/itemlist/:gender/:category" element={<Itemlist />} />

그러면 detail/1, detail/2, detail/3 등등 detail뒤에오는 모든 경로상에서 Itemdetail이라는 컴포넌트가 나타난다.

꼭 숫자가 아니더라도 itemlist/all/orginals, itemlist/men/1, itemlist/women/slipper 처럼 입력해도 Itemlist라는 컴포넌트를 불러오며, 해당하는 경로의 값을 읽어올 수 있다.

값을 읽어오기 위해 해당 컴포넌트로 가서 useParams훅을 사용해준다.

다음과 같이 사용한다.

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

const params = useParams();

console.log(params);

다음과 같이 params를 설정해놓고 콘솔에 찍으면 itemlist/men/originals의 url에서 다음과 같은 객체가 나온다.

useEffect(() => {
    fetch(
      `api 주소/${params.gender}/${params.category}`,
      {
        method: 'GET',
        headers: { 'content-type': 'application/json' },
      }
    )
      .then(res => res.json())
      .then(res => setShoesData(res.data));
  }, [params.gender, params.category]);

데이터를 가져올 때 다음과 같이 url을 설정하고 BackEnd에서 해당하는 데이터만 받아올 수 있고 해당 데이터에 맞는 페이지를 하나하나 만들지 않을 수 있다.

profile
Front-end Developer

0개의 댓글