今天的课是王威老师讲的,主要讲的是前端路由整体的发展史,让我们了解路由扮演的角色,以及演变的必要性。同时结合React-router这个常用的类库的源码,分析下路由如何驱动我们的视图变化。以及结合路由,在大型复杂应用里,我们可以做什么样的优化,提升我们的开发体验和用户体验。话不多说,开始上重点。
路由是什么?
路由(router)是一种负责寻径的网络设备,它在互连网络中从多条路径中寻找通讯量最少的一条网络路径提供给用户通信。路由用于连接多个逻辑上分开的网络。对用户提供最佳的通信路径。
- 路由是指路由器从一个接口上收到数据包,根据数据包的目的地址进行定向并转发到另一个接口的过程。
但是这个过程并不是简单的线性过程,就好像你要去旅游,肯定有很多路线供你选择,各种交通工具也能到达目的地,但是我们会选择最快最经济的路线。
- 设置路由器的主要目的是找到数据包从源到目的地的最有效路径。
使用非常复杂的算法,路由器决定当前数据包必须通过哪个路由器或设备发送。重复此过程,直到数据包最终到达目的地。
路由是桥梁,帮助需求找到供给方,并进行交换
BrowserRouter 和 HashRouter使用的异同
- BrowserRouter基于History
- HashRouter基于Hash
- BrowserRouter项目部署在公网
如To C的项目、面向大众的项目
- HashRouter项目部署在内网
如To B的项目、本公司业务人员用的项目
- BrowserRouter刷新后没有任何影响,state保存在history
- HashRouter刷新后会导致路由state参数的丢失