- Objective:
- Breadcrumb:
# 概念阐释
## 语义
静态路由仅能解决少数静态页面的问题,但如果一个网站中有几十上百篇文章,且时有更新,我们不可能给每个页面加一个[[React Router 使用Route]],动态路由就是解决这个问题的方法。动态路由使用URL参数`:变量名称`
## 语法
```js
path:“/路径名称/:变量名称”
element:<要导航的页面/>
```
- 变量名称根据语义命名,如name, title,slug
- 路径名称需要与浏览器路径核对,确保无误
# 实例
```js
//App.js
{
path: "/Articles/:title",
element: <Article />, //添加了动态路由,article是展示内容的组件,例如点击列表中的objects,会展示objects的内容
},
{
path: "/Authors/:name",
element: <Author />, //参数name自己组件中的变量名称,根据人类能理解的内容来命名,例如name,title,slug等
},
```
# 相关内容
## 使用参数`useParams`
`useParams`是一个钩子,让动态路由URL所指的子级组件能够正确显示。
```js
import { useParams } from 'react-router-dom';
function User() {
const { userId } = useParams();
// 使用 userId 来获取用户信息或执行其他操作
return <div>User ID: {userId}</div>;
}
```
# 参考资料
- [Dynamic Routes](https://www.codecademy.com/content-items/2ace4407d49746c1a8b3973f1e1eef75/exercises/2022-audit-dynamic-routes?)
- 本地文件夹:react_router_v6_lession_starting_code
- App.js
- Author.js、Category.js、Article.js
- [动态路由- React Router](https://beta.reactrouter.com/en/main/route/route#children)
- [useParams](https://beta.reactrouter.com/en/main/hooks/use-params)