# 动态路由
平常我们定义的路由都是静态路由,如果需要传递参数就要用到动态路由
## 路由参数
1. 注意要添加exact严格模式
2. 路由参数和vue一样,通过/:name
3. 组件中使用,[是通过this.props.match.params.name](http://xn--this-zi0is34suqa.props.match.params.name)
## 修改入口文件main.js
React的动态路由和Vue很相似,也是在定义路由时书写`:name`即可。
```
ReactDom.render(
// 开启路由世界的大门 路由的根地址,只能拥有一次
<HashRouter>
{/*导航 Link Vue的用法很相似 注意这里是大写*/}
<Link to={"/home"}>首页</Link>
<Link to={"/about"}>关于</Link>
<Link to={"/news/1"}>新闻1</Link>
<hr/>
{/*路由指向哪个页面 (组件)有两个意义 定义路由指向 在哪个位置显示页面*/}
<Route path={'/home'} component={Home}/>
<Route path={'/about'} component={About}/>
<Route path={'/news/:id'} component={News}/>
</HashRouter>
, document.getElementById('root'))
```
## 修改news.js组件
在匹配的组件中通过`this.props.match.params.id`来获取数据
```
import React,{Component} from 'react'
export default class News extends Component{
constructor(props){
super(props)
this.state={}
console.log(this)
}
render() {
return <div>这是News组件ID为{this.props.match.params.id}</div>
}
}
```
![](https://box.kancloud.cn/5fb99455b4f3faf4c8ce4f02d0c98b4a_750x607.png)
- webpack复习
- React基础
- 前端三大主流框架对比
- React中几个核心的概念
- React基础语法
- React JSX语法
- React组件
- 普通组件
- 组件通信-父向子传递
- 组件拆成单个文件
- 面向对象复习
- Class组件基础
- Class组件的私有状态(私有数据)
- 案例:实现评论列表组件
- 组件样式管理
- 组件样式分离-样式表
- CSS模块化
- 生命周期
- React组件生命周期
- Counter组件来学习组件生命周期
- 生命周期总结
- 生命周期案例
- React评论列表
- React双向数据绑定
- React版todolist
- 其它提高(了解)
- 组件默认值和数据类型验证
- 绑定this并传参的三种方式
- 祖孙级和非父子组件传递数据(了解)
- React路由
- 路由基础
- 动态路由
- 路由严格模式
- 路由导航定位
- 路由重定向
- 路由懒加载
- WolfMovie项目
- 项目初始化
- AntDesign使用
- 其它相关了解