react路由:
HashRouter 路由 有一个#,这种模式常用
BrowserRouter:路由中没有#,会发送ajax请求,返回一个页面,需要后端支持,这种模式一般不怎么使用
react-router-dom;是页面开发的路由,react-router-native:是react-native(RN)开发
普通hash模式下:匹配路由以什么开头,或者与当前要跳转的路由一定匹配
如果出现二级路由的时候,需要使用exact来精确匹配
Route:一个路由的配置对象/组件,Redirect:重定向
switch组件:
相当于页面的switch方法,在写默认路由的时候,需要把默认路由写在最后,不然会递归(或者开启exact匹配)
如果整个路由都匹配完成后,还是没有匹配到具体的路由,应该跳转到默认页面,或404
使用switch匹配到一个路由就停止查找路由
react路由传参
一:在页面上传参数的时候,props.history.push方法接收一个对象,路由名字叫:pathname,需要传递的数据叫:state(接收一个对象),在页面上的props.location来 接收
二:使用动态路由,定义路由的时候 /:
三:使用固定参数传递,在定义路由的时候,使用render属性,这个属性绑定一个方法,这个方法有一个props入参,返回一个组件,解构props,然后再进行传参
路由权限管理
两种方法:一是:render方法,一是直接在组件里面使用三目运算
通用路由的使用方法
1:默认路由一般放在路由定义的最后,如果有404页面,需要放在默认路由的后边