본문 바로가기
React/개념

useParams

by hihijh826 2024. 2. 2.
728x90
반응형
SMALL

📍useParams란?

  • 리액트 훅으로 리액트에서 라우터 사용시 동적 파라미터 정보를 가져와 활용하고 싶을 때 사용
  • 현재 URL의 경로에서 URL 매개변수를 쉽게 가져오는 데 사용
  • 파라미터가 아닌 현재 페이지의 pathname을 가져오려면 useLocation()을 사용해야함
...URL/user/1
user는 pathname, 1은 parameter
  • 사용 예:
import { useParams } from 'react-router-dom';

const MyComponent = () => {
  const { id } = useParams(); // URL 경로에서 'id' 매개변수를 가져옴
  return <div>ID: {id}</div>;
};
  • 주요 특징:
    • 경로 매개변수(예: /users/:id)를 사용하여 동적으로 URL에서 값을 가져옵니다.
    • URL의 쿼리 문자열은 처리하지 않습니다.

 

📍useParams()의 작동 방식

  • URL 경로에서 매개변수 추출: useParams()를 호출하면 현재 URL에서 정의된 매개변수를 객체 형태로 반환

이 객체의 키는 URL에서 정의한 매개변수의 이름과 일치한다

  • 주로 동적 라우팅에 사용: 주로 동적 경로를 사용하는 경우에 유용함.
    • 예를 들어, /projects/:projectId와 같은 경로에서 projectId를 가져오는 데 쓰임

 

☑️ 동적 라우팅 예시

1. 라우터 설정: 먼저, react-router-dom을 사용하여 라우터 설치 /설정 / Import 해야 함

import { BrowserRouter as Router, Routes, Route } from 'react-router-dom';
import ApplyPage from './ApplyPage';

const App = () => {
  return (
    <Router>
      <Routes>
        <Route path="/projects/:projectId" element={<ApplyPage />} />

      </Routes>
    </Router>
  );
};

export default App;

: 기호 : 뒤에 오는 부분이 동적 매개변수 임을 나타냄 . 즉 고정된 값이 아니라 사용자가 제공하는 값

 

2. useParams() 사용: ApplyPage 컴포넌트에서 useParams()를 사용하여 projectId를 가져옴

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

const ApplyPage = () => {
  const { projectId } = useParams(); // URL에서 projectId 가져오기

  return (
    <div>
      <h1>Project ID: {projectId}</h1>
    </div>
  );
};

export default ApplyPage;

 

3. 예시 URL

<http://localhost:3000/ApplyPage/1>

여기서 1은 실제 projectId에 해당하는 값입니다.

 

💡 주의사항

해시: URL에서 # 뒤의 부분은 해시로 취급되며, React Router의 useParams는 해시를 처리하지 않음

즉, 실제 projectId가 FEED#5679일때 projectId는 FEED로만 인식되고, 해시 이후의 5679는 무시됨

 

☑️ 실전 예시

☑️import

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

 

1. useParams 정보를 하나의 변수에 저장한다.



2.  파라미터 값을 사용할 수 있다.



☑️ 총 코드

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

const test = () => {
  let { params } = useParams();  // 동적 파라미터를 가져옵니다.

  return (
    <div className="test">
      <p>현재 페이지의 파라미터는 { params } 입니다.</p>
    </div>
  )
}

export default test;
  • let { params } = useParams(); 구문에서 params는 URL에 정의된 동적 파라미터를 포함하는 객체
  • 예시 URL: ~url~/test/1 이 URL에서 1은 동적 파라미터. 출력: "현재 페이지의 파라미터는 1입니다."라고 출력됨
728x90
반응형
LIST

'React > 개념' 카테고리의 다른 글

API  (0) 2024.10.25
아이콘 이용  (0) 2024.09.11
useRef ( 외부 클릭시 모달 창 닫기 기능)  (0) 2024.02.02
useDebounce  (0) 2024.02.02
URLSearchParams  (0) 2024.01.23