Route-Based Rendering
We can render components based on URLs. To do that, we need to use the following components:
- We use
BrowserRouterto enclose all the other code in the main React component; Routesis used for enclosing all individualRoutecomponents and their child components. It returns a single React component based on the URL. There can be multiple<Routes>components in the code;Routerepresents a URL path and points to a React component.
Look at the example from the previous chapter:
<BrowserRouter>
<Routes>
<Route path="/" element={<Home />} />
<Route path="about" element={<About />} />
<Route path="*" element={<Error />} />
</Routes>
</BrowserRouter>
- The
<Routes>component groups all the<Route>components and returns the most relevant React component based on the current user's URL path; - The
<Route>component has two attributes:pathandelement. Thepathattribute is the relative path based on the parent component. It will make more sense with further explanation. Theelementstores a reference to the React component that the URL should render; - We can nest
<Route>components to create nested routes. For example, to createhttp://***.com/about/updatespath, we can change the structure like this:
<BrowserRouter>
<Routes>
<Route path="/" element={<Home />} />
<Route path="about">
<Route index element={<About />} />
<Route path="updates" element={<Updates />} />
</Route>
<Route path="*" element={<Error />} />
</Routes>
</BrowserRouter>
In the above code, we created an about path but didn't specify a target component. Instead, we created two nested routes.
The first nested Route doesn't have a path attribute but, instead, an index, which indicates that its path is that of the parent Route.
The other one points to the Update component having path updates - React Router automatically considers this path relative to the parent path, that is, http://***.com/about/.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Запитайте мені питання про цей предмет
Сумаризуйте цей розділ
Покажіть реальні приклади
Awesome!
Completion rate improved to 2.7
Route-Based Rendering
Свайпніть щоб показати меню
We can render components based on URLs. To do that, we need to use the following components:
- We use
BrowserRouterto enclose all the other code in the main React component; Routesis used for enclosing all individualRoutecomponents and their child components. It returns a single React component based on the URL. There can be multiple<Routes>components in the code;Routerepresents a URL path and points to a React component.
Look at the example from the previous chapter:
<BrowserRouter>
<Routes>
<Route path="/" element={<Home />} />
<Route path="about" element={<About />} />
<Route path="*" element={<Error />} />
</Routes>
</BrowserRouter>
- The
<Routes>component groups all the<Route>components and returns the most relevant React component based on the current user's URL path; - The
<Route>component has two attributes:pathandelement. Thepathattribute is the relative path based on the parent component. It will make more sense with further explanation. Theelementstores a reference to the React component that the URL should render; - We can nest
<Route>components to create nested routes. For example, to createhttp://***.com/about/updatespath, we can change the structure like this:
<BrowserRouter>
<Routes>
<Route path="/" element={<Home />} />
<Route path="about">
<Route index element={<About />} />
<Route path="updates" element={<Updates />} />
</Route>
<Route path="*" element={<Error />} />
</Routes>
</BrowserRouter>
In the above code, we created an about path but didn't specify a target component. Instead, we created two nested routes.
The first nested Route doesn't have a path attribute but, instead, an index, which indicates that its path is that of the parent Route.
The other one points to the Update component having path updates - React Router automatically considers this path relative to the parent path, that is, http://***.com/about/.
Дякуємо за ваш відгук!