Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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
- docker
- TypeScript
- Express
- Android
- 광고 id
- nuxt
- 오블완
- react-native
- python
- AWS
- 파이썬
- EC2
- Next
- chrome
- css
- Jenkins
- 코딩테스트
- kotlin
- 백준
- 티스토리챌린지
- React
- NanoHttpd
- 개발
- it
- 코테
- 오퍼월
- toml
- spring boots
- nginx
- JavaScript
Archives
- Today
- Total
내맘대로 개발일지
[React] searchParams 동적 라우팅 본문
📱테스트 환경
"react": "18.2.0"
"react-dom": "18.2.0"
"typescript": "^4.9.5"
와! 오늘 진짜 엄청난걸 알아버렸다.
ㅇㅣ제 선택값 유지를 위해서 URL Params 를 이용하려고 하는데
Nextjs 개발을 할때는 router.push({...}) 를 통해서 현재 URL 에 파람만 추가해줬었는데
React 에서 하려고 하니까 좀 .. 햇갈렸다고 해야하나 쉽지않았다.
[ 첫번째방법 : 추천 x ]
const searchParams = new URLSearchParams(location.search);
searchParams.set('newParam', 'value');
navigate(`${location.pathname}?${searchParams.toString()}`, { replace: true });
이제 의식의흐름기법으로 작성한 코드인데, 중요한건 히스토리가 쌓여선 안됐다.
그렇기때문에 replace 는 true 로 해주고 search 와 pathname 을 조합해서 만들었다.
문제는 이렇게 하고나니까 가독성도 떨어지고 누가봐도 좀 이상하다.
[ 두번째방법 : 추천 o 강추 ]
import { useSearchParams } from "react-router-dom";
const [searchParams, setSearchParams] = useSearchParams();
// get
searchParams.get("params")
// set -> value 는 string 값만
searchParams.set("params", "value");
setSearchParams(searchParams, { replace: true });
useSearchParams 를 이용하는 건데. 이게 아주 쉽고 간단하게 사용할 수 있었다.
get 과 set 을 이용하여 값을 세팅할 수 있었고
가독성 또한 뛰어나다고 할 수 있다. 이리 간단하니까 !
'Javascript > React' 카테고리의 다른 글
| [React] Ant Design Table 사용 시 'key' prop (1) | 2024.05.02 |
|---|---|
| [React] React-Quill + highlight.js (0) | 2024.05.02 |
| [Express] mysql2 Can't add new command when connection is in closed state (0) | 2024.04.29 |
| [React] Warning: React does not recognize the prop on a DOM element. (1) | 2024.04.26 |
| [React] 탭 눌렀을 때 다른 곳으로 이동하는 방법 (0) | 2024.04.25 |