useNavigationType
useNavigationType
是用来获取用户是通过哪种方法导航到当前组件中的。用户在进行导航的时候虽然只是简单的点击和后退操作,但是在React Router中对应的操作却不尽相同。
从以下useNavigationType
的函数签名中可以看出来React Router在操作用户导航历史栈的时候,都有哪些操作。
type NavigationType = 'POP' | 'PUSH' | 'REPLACE';
declare function useNavigationType(): NavigationType;
由于导航历史栈是一个FILO(先入后出)的数据结构,所以NavigationType
的三个取值含义可以按照以下方式理解。
POP
,表示栈弹出操作,这个操作是将一个值从栈顶移除,可以理解为用户或者应用进行了后退操作。PUSH
,表示栈压入操作,这个操作是将一个值放入栈顶,可以理解为用户导航进入了一个新的页面。REPLACE
,表示栈清空操作,这个操作是将整个栈都清空了,然后再执行一次压入操作,可以理解为用户执行了刷新操作,删除了之前的全部导航历史。