关于react-router-dom的一些记录

最近在做的新项目使用的技术栈是 React+AntDesign,本篇主要记录在实践过程中使用react-router-dom时遇到的一些方法的总结。

1、HashRouter和BrowserRouter

react-router-dom依赖于react-router,主要用于浏览器环境下的开发。它的路由基本有2个路由容器即HashRouter和BrowserRouter,HashRouter使用的是hashchange的方法,浏览的url中包含#,BrowserRouter使用的原理是H5的history API来使url发生改变。本文主要以HashRouter为例。

import{ HashRouterasRouter, Route, Switch }from"react-router-dom";importJoinfrom"./Join";importSuccessfrom"./Success";importLoginfrom"../Login";importHomefrom"../Home";                                   

2、Switch

只渲染第一个匹配到的路由组件,Switch下的子节点只能是 Route 或 Redirect 元素。只有与当前访问地址匹配的第一个子节点才会被渲染。

3、Route

Route 主要用于控制路径对应显示的组件,编程式导航三个路由属性是:

exact:精准匹配,不再向下匹配

path:标识路由的路径

component:路径对应显示的组件

4、Link和NavLink

路由导航:NavLink区别在于有一个属性用来显示跳转选中的样式。它具有:

activeStyle:可以直接写选中的样式

activeClassName:激活时应用的样式名,默认是active

import{ Link }from"react-router-dom";About

to:链接到的路径或位置

replace:替换路径

5、withRouter

withRouter可以包装任何自定义组件,将react-router 的 history,location,match 三个对象传入。

无需一级级传递react-router 的属性,当需要用的router 属性的时候,将组件包一层withRouter,就可以拿到需要的路由信息。

主要用于子组件。

6、match

用于获取路由的参数信息

console.log(this.props.match.params.id)

params:object 路径参数,通过解析 URL 中的动态部分获得键值对

isExact:为 true 时,整个 URL 都需要匹配

path:用来匹配的路径模式

url: 匹配的链接

7、location

用来存放当前的路径的信息

const{ pathname } =this.props.location;

pathname:url路径

search:查询字符串

hash:hash

8、history

可以用来手动跳转到页面

this.props.history.push('/user/list')

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容