从 react-router v4.4.0-beta.4 开始,以及正式的 v5.0.0 中,您现在可以指定一个路径数组,这些路径解析为组件,例如
<Router>
<Route path={["/home", "/users", "/widgets"]} component={Home} />
</Router>
数组中的每个路径都是一个正则表达式字符串。
可在此处找到此方法的文档。
React Router v6 的更新
React Router v6 不再允许将路径数组作为 Route 属性传递。相反,你可以利用 React 钩子(参见此处的文档)来实现相同的行为:useRoutes
import React from "react";
import {
BrowserRouter as Router,
useRoutes,
} from "react-router-dom";
const App = () => useRoutes([
{ path: "/home", element: <Home /> },
{ path: "/users", element: <Home /> },
{ path: "/widgets", element: <Home /> }
]);
const AppWrapper = () => (
<Router>
<App />
</Router>
);
您可以在此处看到此代码的扩展示例。
从这个答案中得出的关键结论是:
useRoutes 钩子在功能上等同于 ,但它使用 JavaScript 对象而不是元素来定义路由。<Routes>
<Route>