一 、params传参
内容 组件是有props - match - params接受参数 二、search传参 内容 组件是有props - location-search接受参数 search参数的值是 "?id=01&title=消息" 需要解析。 利用:import qs from 'querystring' const res = qs.parse("?id=01&title=消息".slice(1))截取1 是吧问号干掉 res的值就是个对象:{id:01,title:消息}二、state传参
内容 组件是有props - location-state接受参数withRouter的使用
import {withRouter} from ‘ract-router-dom’;
class Header extends Component{
}
export default withRouter(Header);
withRouter可以加工一般组件,让一般组件具备路由子组件所特有的API (如push place goback等方法)
withRouter的返回值是一个新组件
BrowserRouter与HashRouter的区别
1.底层逻辑不一样:
browserRouter使用的是H5的history API 不兼容IE9及以下版本。
hashRouter使用的是URL的哈希值。
2.path表现形式不一样
BrowserRouter的路径中没有# 例如:localhost:30000/demo/test
hashRouter的路径包含#,例如:localhost:3000/#/demo/test
3.刷新后对路由state参数的影响
a.browserRouter没有任何影响,因为state保存在history对象中
b.hashRouter刷新后会导致路由state参数的丢失
4.备注:HashRouter可以用于解决一些路径错误相关的问题。