These packages work together to handle webpage navigation in React applications. React Router is the core routing library containing the main routing logic, while React Router DOM adds specific tools for web browsers. Most web developers only need to install react-router-dom, as it includes react-router as a dependency and provides all the necessary browser-specific components.
Both packages provide client-side routing for React applications. react-router provides the core routing functionality, while react-router-dom provides additional DOM-related features, such as Link and NavLink components.
Both packages have excellent TypeScript support, with type definitions included in the package.
Both packages are compatible with modern browsers, including Chrome, Firefox, Safari, and Edge.
react-router-dom depends on react-router, and both packages depend on react.
Both packages have similar performance characteristics, with efficient route matching and rendering.
Both packages are designed for use with React, and are compatible with popular frameworks like Create React App and Next.js.
Both packages have an active community, with frequent updates and issues resolved quickly.
Both packages have excellent documentation, with clear guides and API references.
Both packages are actively maintained by the React Training team, with regular updates and bug fixes.
1import { BrowserRouter, Route, Link } from 'react-router-dom';
2
3function App() {
4 return (
5 <BrowserRouter>
6 <div>
7 <h1>Home</h1>
8 <Link to="/about">About</Link>
9 </div>
10 <Route path="/about">
11 <h1>About</h1>
12 </Route>
13 </BrowserRouter>
14 );
15}
This example shows how to use react-router-dom to create a basic routing system, with a link to an 'about' page.
1import { BrowserRouter, Route, Link } from 'react-router-dom';
2
3function App() {
4 return (
5 <BrowserRouter>
6 <div>
7 <h1>Users</h1>
8 <Link to="/users/1">User 1</Link>
9 </div>
10 <Route path="/users/:id">
11 <h1>User {match.params.id}</h1>
12 </Route>
13 </BrowserRouter>
14 );
15}
This example shows how to use react-router to create routes with parameters, such as a user ID.
Both packages are excellent choices for client-side routing in React applications. react-router provides a lightweight, flexible routing system, while react-router-dom provides additional DOM-related features.
A routing library built by the original creator of React Router. Focuses on accessibility and simplicity, with built-in focus management for screen readers.
Very similar to React Router but with better accessibility features built-in. Good for projects where accessibility is a top priority.
React RoutingA tiny router for React that's simpler than React Router. It has a very small size (1KB) and provides basic routing features like path matching and navigation.
Perfect for small to medium projects where you don't need all of React Router's complex features. It uses a similar API to React Router so it's easy to learn if you know React Router.
React RoutingThe built-in router that comes with Next.js framework. Provides file-system based routing and easy page transitions with zero configuration needed.
Great alternative if you're using Next.js. No need to install additional packages, and it's simpler to use because routing is based on your folder structure.
React RoutingA simple middleware-style router that can work with any JavaScript framework, not just React. Supports async routes and nested routes.
Good choice if you want a framework-agnostic router that might work across different projects. Simpler than React Router but still powerful.
JavaScript RoutingNo README available
Respectfully opinionated convention-driven framework for building React applications. Built on React, Webpack, Redux, and React Router.
基于react18, antd5开发的gbeata-admin 后台管理系统,gbeata组件库
The VLINGO XOOM Designer to guide you in rapid delivery of low-code to full-code Reactive, Event-Driven Microservices and Applications using DOMA, DDD, and other approaches.
Serve geographic data from R and consume with scalable front end.
Data portal API and component generation
Respectfully opinionated convention-driven framework for building React applications. Built on React, Webpack, Redux, and React Router.
基于react18, antd5开发的gbeata-admin 后台管理系统,gbeata组件库
The VLINGO XOOM Designer to guide you in rapid delivery of low-code to full-code Reactive, Event-Driven Microservices and Applications using DOMA, DDD, and other approaches.
Serve geographic data from R and consume with scalable front end.
Data portal API and component generation