1 - Single-level routing
<NavLink to="/home">Home</NavLink> <NavLink to="/about">about</NavLink> <Routes> <Route path='/home' element={<Home/>}/> <Route path='/about' element={<About/>}/> </Routes>
2 - Nested routes (about paths for nesting)
Level 1 routing
<NavLink to="/home">Home</NavLink> <NavLink to="/about">about</NavLink> <Routes> <Route path='/home' element={<Home/>}/> <!--The route to be nested must be written here/* In order to tell this route that it will follow other paths in the future NavLink Never write andRouteSame/about/* otherwise/about This button routingcssIn-houseactiveWill disappear --> <Route path='/about/*' element={<About/>}/> </Routes>
Secondary routing
It is generally best to write the jump button in full, otherwise you will not be able to read the code clearly.
<NavLink to="/about/news">news</NavLink> <NavLink to="/about/message">information</NavLink > <Routes> <Route path='news' element={<News/>}/> <Route path='message' element={<Message/>}/> </Routes>
The path to the switched path needs to be written in the secondary route
React Router v6 uses routing nesting and redirection
V6 version and v5 version have a big difference. The following is V6 uses route nesting and route redirection methods. Subroutine paths do not need to be added with "/", and will be automatically spliced in v6
import React, { Component } from 'react' import { Route,Routes,Navigate} from 'react-router-dom' import About from './pages/About' import Home from './pages/Home' import Header from './components/Header' import MyNavLink from './components/MyNavLink' export default class App extends Component { render() { return ( <div> <div className='row'> <Header/> </div> <div className='row'> <div className='col-xs-2 col-xs-offset-2'> <div className='list-group'> {/* Link routing */} <MyNavLink to="/about" >About</MyNavLink> <MyNavLink to="/home" >Home</MyNavLink> </div> </div> </div> <div className='col-xs-6'> <div className='panel'> <div className='panel-body'> {/* Register a route */} <Routes> {/* The first time you enter the page is to redirect to the /about path */} <Route path="*" element={<Navigate to="/about"/>}></Route> <Route path="/about" element={<About/>}></Route> <Route path="/home/*" element={ <Home/>}> </Route> </Routes> </div> </div> </div> </div> ) } }
Home/
import React, { Component } from 'react' import MyNavLink from '../../components/MyNavLink' import {Route,Routes,Navigate} from 'react-router-dom' import News from './News' import Messages from './Messages' export default class Home extends Component { render() { return ( <div> <h3>Homecontent</h3> <div className='list-group'> <MyNavLink to="news" >News</MyNavLink> <MyNavLink to="messages" >Messages</MyNavLink> </div> <div> <Routes> <Route path="*" element={<Navigate to="messages"/>}></Route> <Route path="news" element={<News/>}></Route> <Route path="messages" element={<Messages/>}></Route> </Routes> </div> </div> ) } }
Home/Messages/
import React, { Component } from 'react' export default class Messages extends Component { render() { return ( <ul> <li>message1</li> <li>message2</li> <li>message3</li> <li>message4</li> </ul> ) } }
MyNavLink/
import React, { Component } from 'react' import { NavLink } from 'react-router-dom' export default class MyVavLink extends Component { render() { return ( <NavLink className="list-group-item" {...}/> ) } }
This is the article about the detailed explanation of the routing and nested routing writing methods of react-router-domV6 version. For more related React Router v6 routing and nested routing content, please search for my previous articles or continue browsing the related articles below. I hope everyone will support me in the future!