// index.js
<BrowserRouter>
<App />
</BrowserRouter>
<Routes>
<Route path='/welcome' element={<Welcome />} />
<Routes />
/welcome
일 때 Welcome
컴포넌트를 로딩<Route />
의 순서는 중요하지 않음exact
가 v6부터 X. 정확히 일치하는 경로만 찾음.<Route path="/" element={Navigate replace to="/welcome" />
<Routes>
<Route path="new-user" element={<p>~</p>} />
</Routes>
<Link to="new-use">New User</Link>
<Route>
가 하나라도 <Routes>
로 싸줘야 한다/welcome/new-user
로 적는 게 v5위와 같이 중첩 라우팅을 하는 경우
<Route path='/welcome/*' element={<Welcome />} />
/*
를 붙여줘야 welcome
의 구성 요소(new-user)를 로드// App.js
<Route path='/welcome/*' element={<Welcome />}>
👋<Route path="new-user" element={<p>~</p>} />
</Route>
// Welcome.js
<Link to="new-use">New User</Link>
<Outlet/>
App.js
의 👋 뒤로 오는 코드의 element는 Welcome.js
의 어느 부분에 위치해야 할까<Outlet/>
으로 중첩 라우팅 콘텐츠의 위치를 지정할 수 있음<Route path='product-detail/:productId' element={<ProductDetail />}>
productId
는 placeholder 같은 것hi.com/product-detail/p1
마음대로 적어줄 수 있음const params = useParams();
return (
~
<p>{params.productId}</p>
// 이 부분은 경로에 적었던 것과 같이 적어줌
~
);
hi.com/product-detail/p1
에 있는 경우 {params.productId}는 p1을 보여줌. 도메인마다 다르게 반응.// 활용 예
<Link to={`/quotes/${props.id}`} element={<p>~<;/p>}>
const navigate = useNavigate();
navigate('/welcome', {replace: true});
navigate(-1)