localhost:3000/product/125
<BrowserRouter>
<Routes>
<Route path='/product/:id' element={<ProductDetail />} />
</Routes>
</BrowserRouter>
:
가 붙어야 함:id
의 id는 임의의 값으로 마음대로 네이밍 가능 (ex. :pagename
)function useQuery() {
return new URLSearchParams(useLocation().search);
}
function QueryParamsDemo() {
let query = useQuery();
return (
<Child name={query.get("name")} />
)
}
function Child({ name }) {
//name 가져다가 쓸 수 있음
}
const navigate = useNavigate();
const goToDetail = () => {
navigate(`/product/${id}`);
}
인자에 정수값을 넣으면 방문기록에 남아있는 경로 이동
navigate(-1); // 뒤로 가기
navigate(-2); // 뒤로 2페이지 가기
navigate(1); // 앞으로 가기
const location = useLocation();
console.log(location);
/// 객체 반환
{
pathname: '/product/1',
search: '',
hash: '',
state: null,
key: 'default'
}
<Route path = '/onboarding/:eventId/:groupId/:userId' exact component = {OnboardingViewController} />
const { eventId, groupId, userId } = useParams();
// 현재경로: /product/1
<BrowserRouter>
<Routes>
<Route path='/product/:productId' element={<ProductDetail />} />
</Routes>
</BrowserRouter>
const params = useParams();
console.log(params)
//객체 반환
{
productId: 1
}
공부하며 정리&기록하는 ._. 씅로그