1. React-Router 的实现原理是什么?
客户端路由实现的思想:
- 基于 hash 的路由:通过监听
hashchange事件,感知 hash 的变化- 改变 hash 可以直接通过
location.hash=xxx
- 改变 hash 可以直接通过
- 基于 **H5 history 路由: **
- 改变 url 可以通过 history.pushState 和 resplaceState 等,会将 URL 压入堆栈,同时能够应用
history.go()等 API - 监听 url 的变化可以通过自定义事件触发实现
- 改变 url 可以通过 history.pushState 和 resplaceState 等,会将 URL 压入堆栈,同时能够应用
react-router 实现的思想:
- 基于
history库来实现上述不同的客户端路由实现思想,并且能够保存历史记录等,磨平浏览器差异,上层无感知 - 通过维护的列表,在每
本文详细探讨了React-Router的实现原理,包括基于hash和H5 history的客户端路由思想,以及React-Router如何通过history库统一处理。此外,还介绍了配置React-Router实现路由切换的方法,如使用Route、Switch组件,以及如何设置重定向。同时,文章对比了Link和a标签的区别,并讲解了如何获取URL参数和历史对象。最后,阐述了React-Router的两种路由模式(BrowserRouter和HashRouter)以及Switch组件的作用。
订阅专栏 解锁全文
2889





