我正在研究我的React应用程序的路由器操作历史记录,发现在执行“ REPLACE”操作之后紧接有许多“ POP”操作。我似乎找不到更多有关“ POP”操作的文档,这是什么?它是做什么的?
在我的组件中添加验证以验证我的location.action
生命周期中的componentDidUpdate()
是安全还是正确的?
答案 0 :(得分:0)
POP
是浏览器后退事件操作。以及为什么要验证location.action
?
答案 1 :(得分:0)
发现this article由Matthew所写,很好地解释了History API:
返回上一页
使用pushState()
方法时,还需要考虑其自然对应的onPopState
事件。尽管pushState()
方法将新条目添加到浏览器的历史记录列表中,但是onPopState
事件使您有机会在用户返回时对其进行处理。
要了解其工作原理,请考虑如果访问者浏览词典推断示例中的所有幻灯片会发生什么。加载每张新幻灯片时,页面都会添加一个历史记录条目。但是,如果用户使用“后退”按钮后退,则什么也不会发生。
要解决此缺陷,您需要处理onPopState
事件,该事件在每次历史记录导航之后触发。 (这包括您使用诸如history.back()
之类的历史记录方法之一,以及用户单击浏览器导航按钮时的情况。)
onPopState
事件为您的代码提供了您之前在pushState()
中存储的状态信息。
...
如果按下,则必须弹出。 pushState()
方法和onPopState
事件是合作伙伴。你投入的是一种,而另一种则得到了回报。