更多内容,请访问:两种路由模式及React-Router中的History库源码分析
Action 枚举
export enum Action {
Pop = "POP",
Push = "PUSH",
Replace = "REPLACE",
}
Action介绍
Action表示location变化(路由切换)的动作类型,目前有三种动作类型:
1. POP
在history栈中,跳转到其他已存在的历史纪录(回退或者前进),这种location变化,叫做POP,比如浏览器的前进或者后退。
POP动作类型也作为默认的动作类型,当进行push或者replace时,再更新当前的动作类型为PUSH或者REPLACE。
2. PUSH
PUSH表示一种新的历史记录被添加到history栈中,例如:react-router中的Link(底层调用的是history.push)。
关于 When this happens, all subsequent entries in the stack are lost.这句话讲解是:
如果此时我们通过回退(浏览器回退或者history.back)回到之前的某个节点后,此时执行Link(或者history.push)等,那么当前的history 栈中,此刻的历史记录是处于栈顶的,而之前因为回退经过的几个节点全部丢失。
3. REPLACE
REPLACE表示当前的历史记录被新的替换掉,通过调用history.replace。