

| 라우터 컴포넌트 종류 | 설명 |
|---|---|
| BrowserRouter | HTML5를 지원하는 브라우저의 주소를 감지 |
| HashRouter | 해시주소(http://localhost#login)를 감지 |
| MemoryRouter | 메모리에 저장된 이전, 이후 주소로 이동 |
| NativeRouter | 리액트 네이티브를 지원하는 라우터 |
| StaticRouter | 브라우저의 주소가 아닌 프로퍼티로 전달된 주소를 사용 |
$ npm install react-router-dom
const router = createBrowserRouter([
{
path: "/",
element: <div>Home</div>,
errorElement: <div>Page Not Found</div>
}
]);
const App = () => {
return <RouterProvider router={router} />;
};

const router = createBrowserRouter([
{
path: "/",
element: <Root />,
errorElement: <NotFound />,
children: [
{ index: true, element: <Home /> },
{ path: "/product", element: <Product /> }
]
}
]);
a 태그를 사용a 태그를 직접 사용하면 안 됨a 태그를 클릭하여 페이지 이동 시, 브라우저가 페이지를 새로 불러오기 때문페이지를 새로 불러오는 것을 막고, History API를 통해 브라우저 주소의 경로만 변경하는 기능
<Link to="주소">링크이름</Link>

const navigate = useNavigate();
// home 경로로 이동
function goHome(){
navigate('/home');
}
데이터 전달
{ path: "/product/:productId", element: <ProductInfo /> }
데이터 사용
const { productId } = useParams();