React路由v5和v6版本嵌套路由和重定向

react-router-dom需要自行安装,目前的v5和v6版本用法上的主要区别:

  1. 匹配一个路由包裹组件 v5:<Switch></Switch> v6:<Routes></Routes>
  2. 注册路由指向的组件属性: v5:component 值为组件名称,如Home v6:element 值为组件 <Home/>
  3. 嵌套路由: v5:需要写父级路由,如/home/news v6:不写父级路由,如news
  4. 重定向: v5:用Redirect标签,如:<Redirect to="/home"> v6:用Route,element值为Navigate标签,如:<Route path="*" element={<Navigate to="home"/>}/>
  5. 精准匹配与模糊匹配: v5:默认是模糊匹配,通过在Route配置加exact开启精准匹配 v6:默认开启精准匹配,加/*开启模糊匹配

v6相关代码: 一般路由:(

{
          
   /* 注册路由 */}
<Routes>
   {
          
   /* 初始页面指向Home */}
    <Route path="*" element={
          
   <Navigate to="/home" />} />
    <Route path="/about" element={
          
   <About/>}/>
    <Route path="/home/*" element={
          
   <Home/>}/>
</Routes>

嵌套路由:

{
          
   /* 注册路由 */}
<Routes>
    <Route path="*" element={
          
   <Navigate to="news" />}/> 
    <Route path="news" element={
          
   <News/>}/> 
    <Route path="message" element={
          
   <Message/>}/>
</Routes>
经验分享 程序员 微信小程序 职场和发展