<link> 和<NavLink> 实现路由的跳转 是声明式导航
通过js路由对象的方式叫做编程式导航 push replace go
路由对象只有被router处理过之后或者用WithRouter高阶组件处理过后才有
编程式导航:
1 push props.history.push('/singer')
2 replace props.history.replace({pathname:'/singer'})
3 go props.history.go(-1) //返回
4 goback props.history.goBack() //返回
5 goforward props.history.goForward() //前进
WithRouter :是一个函数,接收一个组件作为参数,返回一个新组件,在新组件里的props里会被注入路由对象
WithRouter 作用处理一个组件给处理的组件添加路由对象
注意:正常的组件是没有路由对象的 ,两和方式获取路由对象
1 通过Route 处理过的组件在props里有路由对象
2 通过WithRouter处理过的组件也有路由对象
import {withRouter} from 'react-router-dom' //引入
let NewComponent =WithRouter(CustomNav)//处理组件
export default NewComponent