历史推动和替换之间的折衷是什么?

时间:2016-09-06 03:14:12

标签: reactjs react-router browser-history

我使用History包将无效的网址重定向到我的反应组件上的404页面。

我使用.replace代替.push只是因为我不希望浏览器记录我访问过的任何无效网址。

我错过了这里的观点吗?在为我的目的选择一个或另一个之间是否存在权衡?

有人可以向我解释一下吗?提前谢谢;)

3 个答案:

答案 0 :(得分:10)

我认为你有正确的想法。

我个人使用.replace从无效网址重定向(或非相关,即当已登录用户转到“/ login”网址时重定向到“个人资料”页面),因此使用浏览器的“返回”按钮适用于最终用户。

答案 1 :(得分:5)

router.replace的行为类似于router.push,唯一的区别是它在不推送新历史记录条目的情况下导航,顾名思义 - 它会替换当前条目。

答案 2 :(得分:0)

当我有明确的操作并且不希望用户返回此页面时,我喜欢使用 .replace()

示例:我有一个带有删除按钮的产品详细信息页面,用于最终删除产品。当我点击按钮时,我会router.replace返回所有产品的列表,因此当用户使用浏览器中的后退按钮时,他无法返回详细信息页面,因此他无法看到甚至再次点击删除按钮,因为该产品不再存在。