You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Router Dom V6如何给path传数组实现多路由渲染同一页面

react-router-dom v6 移除了path属性的数组类型支持,核心是为了优化路由匹配算法的效率和可预测性,你可以用以下两种方式实现和v5完全一致的效果,同时保持代码简洁:

方案1:数组遍历批量生成路由

这是和v5数组path逻辑最对齐的实现,只需要把需要命中同一个组件的路径整理为数组,通过map遍历批量生成<Route>即可,无需重复编写组件代码:

import { BrowserRouter, Routes, Route } from 'react-router-dom'

function App() {
  return (
    <BrowserRouter>
      <Routes>
        {/* 批量匹配Home组件的路由 */}
        {["/dashboard", "/home"].map(path => (
          <Route 
            key={path} 
            path={path} 
            element={<Home />} 
          />
        ))}
        <Route path="/other" element={<OtherPage />} />
        {/* 批量匹配404组件的路由 */}
        {["/", "/404"].map(path => (
          <Route
            key={path}
            path={path}
            element={<NotFound />}
          />
        ))}
      </Routes>
    </BrowserRouter>
  )
}

如果项目中多路径同组件的场景较多,还可以封装为公共工具函数进一步简化代码:

// 公共工具函数,可单独抽离到公共文件
const renderMultiPathRoutes = (paths, element) => 
  paths.map(path => <Route key={path} path={path} element={element} />)

// 业务代码中使用
function App() {
  return (
    <BrowserRouter>
      <Routes>
        {renderMultiPathRoutes(["/dashboard", "/home"], <Home />)}
        <Route path="/other" element={<OtherPage />} />
        {renderMultiPathRoutes(["/", "/404"], <NotFound />)}
      </Routes>
    </BrowserRouter>
  )
}

方案2:路径重定向(适合需要统一展示路径的场景)

如果你希望多个路径指向同一个页面、且用户访问时路径会统一为其中一个(比如访问/dashboard自动跳转到/home,地址栏显示/home),可以用重定向实现,也不需要重复编写组件:

import { BrowserRouter, Routes, Route, Navigate } from 'react-router-dom'

function App() {
  return (
    <BrowserRouter>
      <Routes>
        <Route path="/home" element={<Home />} />
        <Route path="/dashboard" element={<Navigate to="/home" replace />} />
        <Route path="/other" element={<OtherPage />} />
        <Route path="/404" element={<NotFound />} />
        <Route path="/" element={<Navigate to="/404" replace />} />
      </Routes>
    </BrowserRouter>
  )
}

其中replace属性可以避免用户点击返回按钮时回到重定向之前的路径,可根据业务需求选择是否添加。


内容的提问来源于stack exchange,提问作者Josh Liu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 18:06:07