Notice
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- GIT
- 에러
- babel.config.js
- react native
- 리액트 네이티브
- Project
- Access Key 생성
- s3 upload
- js
- firebase 라이브러리
- Next.js
- 문자열 대소문자
- img upload
- 리액트
- 리엑트 네이티브 아이콘
- react native 세팅
- react native CLI
- fire base
- 리액트 네이티브 에러
- react native font
- react native 개발
- 백준
- AWS
- error
- PongWorld
- AWS Access Key
- 문자열 대소문자 구별
- react native picker
- aws bucket 정책
- React
Archives
- Today
- Total
밝을희 클태
[ JS ] searchParams 다루기 본문
searchParams에 대해서 정리를 해볼려고 한다. searchParams는 URL의 query string을 칭한다. searchParams를 읽어서 특정 데이터를 가져오거나, 카테고리 등 많은 곳에 사용이 된다.
https://keynut.co.kr?keyword=hello&page=3
위 URL에서 노란색 부분이 searchParams가 된다.
searchParams를 읽는 방법은
Next.js 14 App Router에서는 useSearchParams 훅을 사용하여 읽기 전용의 searchParams 객체를 리턴받을 수 있다.
useSearchParams 훅으로 리턴받은 searchParams는 읽기 전용이므로 직접 수정할 수 없다. 대신, URLSearchParams 객체를 사용해 searchParams를 수정할 수 있다.
// https://keynut/shop?keyword=hello&page=3
import { useRouter, useSearchParams } from 'next/navigation';
useSearchParams().get("keyword") // "hello"
useSearchParams().get("page") // '3'
const params = new URLSearchParams(useSearchParams().toString());
params.set("page",8)
params.delete("page")
//URL에 반영하기
const router = useRouter();
router.push(`/shop?${params.toString()}`);
Node.JS환경
// URL에서 searchParams를 읽어오는 방법
const url = new URL('https://keynut.co.kr?keyword=hello&page=3');
const searchParams = new URLSearchParams(url.search);
console.log(searchParams.get('keyword')); // "hello"
console.log(searchParams.get('page')); // "3"
// searchParams에 새로운 파라미터를 추가하거나 수정하는 방법
searchParams.set('category', 'books');
console.log(searchParams.toString()); // "keyword=hello&page=3&category=books"
// 기존 파라미터를 삭제하는 방법
searchParams.delete('page');
console.log(searchParams.toString()); // "keyword=hello&category=books"
브라우저 환경
현재 URL에서 searchParams 읽기
// 현재 페이지의 URL을 가져오는 방법
const currentUrl = window.location.href;
const url = new URL(currentUrl);
const searchParams = new URLSearchParams(url.search);
console.log(searchParams.get('keyword')); // 현재 URL의 keyword 파라미터 값 출력
console.log(searchParams.get('page')); // 현재 URL의 page 파라미터 값 출력
현재 URL에서 searchParams 수정하기
// 현재 페이지의 URL을 가져오는 방법
const currentUrl = window.location.href;
const url = new URL(currentUrl);
const searchParams = new URLSearchParams(url.search);
// searchParams에 새로운 파라미터 추가
searchParams.set('category', 'books');
console.log(searchParams.toString()); // "keyword=hello&page=3&category=books"
// searchParams에서 파라미터 삭제
searchParams.delete('page');
console.log(searchParams.toString()); // "keyword=hello&category=books"
// 수정된 searchParams를 URL에 반영하는 방법
url.search = searchParams.toString();
const newUrl = url.toString();
console.log(newUrl); // 수정된 URL 출력
'JavaScript' 카테고리의 다른 글
콜백 지옥이란 그리고 해결법 (0) | 2024.10.30 |
---|---|
[ JavaScript ]자바스크립트는 싱글 스레드인데 어떻게 멀티 스레드처럼 동작을 할까? (3) | 2024.08.28 |
[ JavaScript / TypeScript ] Debounce 함수 구현 (0) | 2024.05.12 |
[ JavaScript ] 렉시컬 스코프(Lexical Scope)와 렉시컬 환경(Lexical Environment) (0) | 2024.05.11 |
[ TypeScript / JavaScript ] DOM 객체 타입 (0) | 2024.05.04 |