
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
第2章 history库详解
在React Router的依赖列表中,有着一个重要的依赖库——history。如果在项目依赖中没有history库,则在安装React Router的同时也会安装其依赖列表中的history库。React Routerv5.1.2依赖的history库版本号为4.9.0。对于history库,也可以单独进行安装:

history库在React Router中扮演着导航执行者与监听者的重要角色。对于React Router,所有的“副作用”都由history库完成。history库负责与外界的沟通,仅关心路由逻辑的React Router不关注外界的情况,需要history库为其提供支持。
history库作为与外界沟通的桥梁,提供了3类历史对象,分别是browserHistory(浏览器历史对象)、hashHistory(哈希历史对象)和memoryHistory(内存历史对象)。各历史对象负责与不同的外界环境进行沟通,并统一为React Router提供支持,它们有着相对一致的接口和复用的代码实现。
本章将介绍各历史对象的对外接口、常用方法与内部源码实现,并分析源码实现原理,同时介绍目前history库存在的问题与一些对应的解决办法,旨在帮助读者理解与使用history库。