"/login"=> <Login />
"/main" => <Main/>
"/page/1" => <Users id={1} />
"/page/2" => <Users id={2} />
"/page/3" => <Users id={3} />
.
.
"/page/:id" => <Page/>
function Users() {
const params = useParams();
console.log(params.id);
return <>{params.id}</>
}
"/page/:id" => <Page/>
:
는 Path Parameter가 올 자리이다.id
는 Path Parameter의 이름이다. 변수 이름같은 느낌useParams으로 URL에 있는 id값 가져오기
// PageDetail.js
// 현재url : localhost:3000/page/1
function PageDetail() {
const params = useParams();
console.log(params.id) // 1
return (
...
);
}
useEffect(() => {
fetch(`${API}/${params.id}`)
.then(res => res.json())
.then(res => ...)
, [params]);
쿼리 스트링? localhost:3000/page?limit=10&offset=5
→ url에서 ?
뒤에 오는 텍스트
→ limit=10&offset=5
: 보여줄 컨텐츠 수는 10개, 현재 위치는 5페이지에 해당하는 페이지
limit : 한 페이지에 보여줄 데이터 수
offset : 데이터가 시작하는 위치(인덱스)
parameter=value
파라미터가 여러개일 경우에는 &를 사용한다.
정적 라우팅 사용 예시
"/search?name=kim" : <Search name="kim" />
"/search?name=lee" : <Search name="lee" />
"/search?name=park" : <Search name="park" />
"/search?name=something" : <Search /> // useLocation().search
// 현재 url -> localhost:3000/page?offset=10&limit=10
function PageList() {
const location = useLocation();
console.log(location.search); // ?offset=10&limit=10
return (
...
)
}
fetch(`${API}/resources${location.search}`)
.then(res => res.json())
.then(res => {
setState(prev => [...res]);
})
개념이나 데이터의 흐름은 이해가 가는데 막상 코드에 적용하려고 하면 복잡하고 어렵게 느껴진다. 하지만 굉장히 많이 사용되는 기능들이라 시간이 지나고 나면 금방 익숙해질거다!
헐 글 너무 잘쓰시는거 아닌가요? ㅇ,.ㅇ
저도 보고 좀 배워야겠네요🤣