04/11-2

Posted by:

|

On:

|

Query

useLocation 과 useSearchParams 2개가 있다.

useLocation의 경우 path로 적었던 그 뒷부분부터 [? 이후]모든 값을 들고온다.

useSearchParams는 조금 더 써야 한다.

let [searchParams,setSearchParams]=useSearchParams();

let nameText=searchParams.get("name");

대신 해당이름의 값만 들고오기 때문에 구별은 쉽다.

컴포넌트가 아닌 JS의 함수로 이동하는것도 가능하다.

이 경우에는 useNavigate라는 함수를 사용한다.

import {useNavigate} from "react-router-dom"; 추가

let navigate=useNavigate();return 위에 추가

navigate(`/about?name=${input}`);return 안에 추가

여기서 input은 input:text로 값을 받아오는 것도 추가해서 텍스트로 값을 입력하고 전송을 눌려서 그 값이 querystring형으로 출력되게 해준다.

[계속하는 실수 : 변수명.map(()=>()) 형태다. 두번째 () 대신에 {}를 넣게 되면 JS형을 읽어버려서 값은 안뜨는데 에러도 안뜬다.]

한글로 입력한 경우 useLocation에서는 인코딩과 디코딩 중간인 %로 붙은 여러가지 값이 나온다. 예)가나다 = %EA%B0%80%EB%82%98%EB%8B%A4