无限期推送到React Router历史记录可以吗?

时间:2019-11-16 23:44:16

标签: reactjs react-router react-router-dom

说我们有主页,页面A,页面B和页面C。如果我这样做:

  1. 打开B页
  2. 回家
  3. 转到页面B

这将在历史对象中至少推送3条路由。如果我重复上述步骤,将会有6个项目。直接通过history.push进行推送时以及在to道具中使用Link组件时,都是如此。

控制复杂性的唯一方法是检查先前的位置,然后执行history.goBackhistory.pushCheck history previous location before goBack()

要注意的是,管理history对象可以很快成为一项非常复杂的任务。只需添加在应用程序每个页面上呈现的导航栏,就可以添加至少“ n-1”个可以回家的地方(假设“家”是导航选项卡之一)。

我们应该对此加以关注并处理以前的位置吗?


可能相关的问题:Why does the React Router history length increase on refresh?

环境:

  • 历史记录是BrowserHistory
  • react-router@5.1.2
  • react-router-dom@5.1.2

1 个答案:

答案 0 :(得分:0)

由于Elan Hamburger的评论,我现在知道BrowserHistory的作用是这样的。通常,在浏览器中,如果您转到页面A,然后转到页面B,然后返回页面A,则单击返回3次将使您返回主页。

因此,您不应该真正介意history对象的大小,至少在没有数十亿用户的情况下至少可以肯定。