BrowserRouter는 HTML5 History API를 사용하여 브라우저의 URL을 React 애플리케이션의 UI와 동기화하는 React Router에서 제공하는 라우터 중 하나입니다.
createBrowserRouter는 React Router v5 이후에 추가된 기능 라우터입니다.
클래식 BrowserRouter 와 달리 함수를 사용하여 라우터를 만들고 다른 라이브러리와의 통합이 더 쉽습니다.
또한 코드 분할에 대한 더 나은 지원을 제공합니다.
브라우저 라우터
export default function App() {
return (
<BrowserRouter>
<Routes>
<Route path="/" element={<Layout />}>
<Route index element={<Home />} />
<Route path="blogs" element={<Blogs />} />
<Route path="contact" element={<Contact />} />
<Route path="*" element={<NoPage />} />
</Route>
</Routes>
</BrowserRouter>
);
}
브라우저 라우터 만들기
const router = createBrowserRouter((
{
path: "/",
element: <Root />,
loader: rootLoader,
children: (
{
path: "team",
element: <Team />,
loader: teamLoader,
},
),
},
));
브라우저 라우터의 특징
– HTML5 History API를 사용하여 브라우저의 URL을 React 애플리케이션의 UI와 동기화합니다.
– 라우팅을 사용하기 때문에
createBrowserRouter의 기능
– 함수를 사용하여 라우터 생성
주관적인 생각
1. createBrowserRouter는 BrowserRouter보다 더 복잡한 구성이 필요하므로 BrowserRouter는 초기 구성을 더 간단하게 수행할 수 있습니다.
2. BrowserRouter의 단점은 사용자의 브라우저가 HTML5 History API를 지원하지 않는 경우 라우팅이 제대로 되지 않을 수 있습니다.
(근데 대부분의 최신 브라우저가 HTML5 History API를 지원하기 때문에 이 문제가 크게 거론되지는 않을 것 같습니다.
)
3. 구성이 간단하고 브라우저 호환성 문제가 없는 경우 BrowserRouter가 더 적합할 수 있습니다.
4. createBrowserRouter의 경우 설정이 번거로울 수 있지만 객체 유형에 따라 코드가 작성되기 때문에 유지보수 및 협업에 좋을 것 같습니다.