일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 백준 1449 노드
- 백준 1018 javascript
- 백준 11047 자바스크립트
- 백준 11047 nodejs
- 백준 1018 nodejs
- 백준 2503 타입스크립트
- 백준 4796 자바스크립트
- 백준 1449 nodejs
- 알고리즘
- 백준 1018 자바스크립트
- 백준 1449 타입스크립트
- 백준 11047 typescript
- 백준 1018 typescript
- 백준 1449 javascript
- 백준 4796 타입스크립트
- 백준 1449
- 백준 2503 javascript
- 백준 2503 자바스크립트
- 백준 4796 캠핑
- JavaScript
- 백준 1018 타입스크립트
- 백준 10448 javascript
- 백준 11047 타입스크립트
- 백준 1449 자바스크립트
- 백준 2503 typescript
- 백준 4796 nodejs
- 백준 4796 javascript
- 백준 2503 nodejs
- 백준 11047 javascript
- CSS
- Today
- Total
POTATO THAT WANT TO BE HUMAN
[React] 리액트에서 쿼리스트링 값 가져오기 (useSearchParams) 본문
쿼리스트링이 궁금하다면
📌 쿼리스트링(Query String)이란?
쿼리스트링이란 사용자가 입력 데이터를 전달하는 방법 중 하나로, url 주소에 미리 협의된 데이터를 파라미터를 통해 넘기는 것을 말합니다. 쿼리스트링은 url 뒤에 덧붙여서 추가적인 정보를 서버 측에 전달하는 것으로, 클라이언트가 어떤 특정 리소스에 접근하고싶어하는지 정보를 담습니다.
- 정해진 엔드포인트 주소 이후에 ? 를 쓰는 것으로 쿼리스트링이 시작하는 것을 알립니다.
- parameter = value 로 필요한 파라미터의 값을 작성합니다.
- = 으로 key와 value를 구분합니다.
- 파라미터가 여러 개일 경우 & 를 붙여 여러 개의 파라미터를 넘길 수 있습니다.
- url 경로에 영향을 끼치지 않습니다.
- 게시판 등 값을 받아올 때 주로 사용됩니다.
- ex) /product?page=1&num=10
- 쉬운 예시로 1페이지의 10번이라는 것을 의미하는 쿼리스트링입니다.
🤔 리액트에서 쿼리스트링 사용하기
리액트에서는 react-router-dom에서 제공되는 useSearchParams
를 사용해서 쿼리스트링 값을 가져올 수 있습니다.
useSearchParams를 사용하기 위해서는 먼저 import를 해와야 합니다.
import { useSearchParams } from 'react-router-dom';
다음으로 사용을 위해 선언해줍니다. useState를 사용할 때와 동일하게 [ ] 안에 변수, set변수 형식으로 선언합니다.
let [query, setQuery] = useSearchParams();
query.get('쿼리값')
을 통해 쿼리스트링 값을 받아올 수 있습니다.
예를 들어
/product?page=1&num=4
라는 url에서 num의 값을 받아오기 위해서는 query.get('name')을 사용하면 4라는 값을 받아올 수 있습니다.
🤔 useSearchParams ?
useSearchParams
는 배열 타입의 값을 반환하며,
첫번째 원소는 쿼리파라미터를 조회하거나 수정하는 메서드들이 담긴 객체를 반환합니다.
get
메서드를 통해 특정 쿼리파라미터를 조회할 수 있고,
set
메서드를 통해 특정 쿼리파라미터를 업데이트할 수 있습니다.
만약 get을 통한 조회시 쿼리파라미터가 존재하지 않는다면 null
이 반환됩니다.
두번째 원소는 쿼리파라미터를 객체 형태로 업데이트할 수 있는 함수를 반환합니다.
쿼리파라미터를 사용할 때 주의할 점은
쿼리파라미터를 조회할 때 값은 무조건 문자열 타입이라는 것입니다.
즉, true
또는 false
값을 넣게된다면 값을 비교할 때 꼭 'true' 와 같이 따옴표로 감싼 후 비교를 해야하고,
숫자를 다루게 된다면 parseInt를 사용하여 숫자 타입으로 변환해야 합니다.
'FRONTEND > React' 카테고리의 다른 글
[React] LiftCycle과 useEffect (0) | 2022.11.04 |
---|---|
[React]useCallback 과 useMemo 사용하기 (0) | 2022.10.06 |
[React] child에서 parent의 함수로 event handler 등록하기 (0) | 2022.03.30 |
[React] 리스트와 key (0) | 2022.02.23 |
[React] React 시작하기 (0) | 2022.02.22 |