<link>?和<NavLink>?實(shí)現(xiàn)路由的跳轉(zhuǎn)?是聲明式導(dǎo)航
通過js路由對象的方式叫做編程式導(dǎo)航 push replace go?
路由對象只有被router處理過之后或者用WithRouter高階組件處理過后才有
編程式導(dǎo)航:
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()? //前進(jìn)
WithRouter? :是一個(gè)函數(shù)盲赊,接收一個(gè)組件作為參數(shù),返回一個(gè)新組件谒亦,在新組件里的props里會被注入路由對象?
WithRouter?作用處理一個(gè)組件給處理的組件添加路由對象?
注意:正常的組件是沒有路由對象的 ,兩和方式獲取路由對象?
1?通過Route?處理過的組件在props里有路由對象
2?通過WithRouter處理過的組件也有路由對象
import {withRouter} from 'react-router-dom'? //引入
let NewComponent =WithRouter(CustomNav)//處理組件
export default NewComponent