生态篇-React-router

66 阅读1分钟

React-router原理

BrowserHistory模式下

  • ① 改变路由 window.history.pushState history.replaceState
  • ② 监听路由 popstate

HashHistory模式下

  • ① 改变路由 window.location.hash
  • ② 监听路由 onhashchange

Redirect 可以在路由不匹配情况下跳转指定某一路由,适合路由不匹配或权限路由的情况。

image.png

React-router原理

  • 组件层面:  在组件层面,需要实现提供路由状态的 Router ,控制渲染的 Route ,匹配唯一路由的 Switch 。
  • api层面:  提供获取 history 对象的 useHistory 方法,获取 location 对象的 useLocation 方法。
  • 高阶组件层面:  对于不是路由的页面,提供 withRouter,能够获取当前路由状态。
  • 额外功能:  之前有很多同学问过我,在 React 应用中,可不可以提供有方法监听路由改变,所以 mini-Router 需要做的是增加路由监听器,当路由改变,触发路由监听器。

image.png