React Router 是一个基于 React 的路由库,用于构建单页应用(SPA)。其中,动态路由允许我们根据传入的参数渲染不同的组件。
动态路由基本用法
动态路由通常包含动态部分,例如 /user/:id
,其中 :id
是动态部分。
- 创建路由组件:首先,我们需要创建一个路由组件,该组件将渲染当用户访问特定路由时。
- 配置路由:在 React Router 中,我们使用
<Route>
组件来配置路由。 - 匹配动态路由:在
<Route>
组件中,我们可以使用path
属性来匹配动态路由。
示例
以下是一个简单的动态路由示例:
import React from 'react';
import { Route, Switch } from 'react-router-dom';
const User = ({ match }) => {
return (
<div>
<h2>User {match.params.id}</h2>
</div>
);
};
const App = () => (
<Switch>
<Route path="/user/:id" component={User} />
{/* 其他路由配置 */}
</Switch>
);
在这个例子中,当用户访问 /user/123
时,User
组件会被渲染,并且 match.params.id
将是 123
。
高级动态路由
除了基本的动态路由,React Router 还支持更高级的动态路由功能,例如:
- 动态路由嵌套
- 路由参数验证
- 路由参数重命名
动态路由嵌套
在动态路由嵌套中,我们可以将一个动态路由作为另一个路由的子路由。
import React from 'react';
import { Route, Switch } from 'react-router-dom';
const UserProfile = ({ match }) => {
return <h3>User Profile: {match.params.id}</h3>;
};
const User = ({ match }) => (
<div>
<h2>User {match.params.id}</h2>
<Switch>
<Route path={match.path + "/profile"} component={UserProfile} />
{/* 其他子路由 */}
</Switch>
</div>
);
const App = () => (
<Switch>
<Route path="/user/:id" component={User} />
{/* 其他路由配置 */}
</Switch>
);
在这个例子中,当用户访问 /user/123/profile
时,UserProfile
组件会被渲染。
图片展示
- React Router
更多信息,请访问React Router 官方文档。
[React Router 官方文档](/react_tutorial/react_router_doc)