我使用History包将无效的网址重定向到我的反应组件上的404页面。
我使用.replace
代替.push
只是因为我不希望浏览器记录我访问过的任何无效网址。
我错过了这里的观点吗?在为我的目的选择一个或另一个之间是否存在权衡?
有人可以向我解释一下吗?提前谢谢;)
答案 0 :(得分:10)
我认为你有正确的想法。
我个人使用.replace
从无效网址重定向(或非相关,即当已登录用户转到“/ login”网址时重定向到“个人资料”页面),因此使用浏览器的“返回”按钮适用于最终用户。
答案 1 :(得分:5)
router.replace的行为类似于router.push,唯一的区别是它在不推送新历史记录条目的情况下导航,顾名思义 - 它会替换当前条目。
答案 2 :(得分:0)
当我有明确的操作并且不希望用户返回此页面时,我喜欢使用 .replace()
。
示例:我有一个带有删除按钮的产品详细信息页面,用于最终删除产品。当我点击按钮时,我会router.replace
返回所有产品的列表,因此当用户使用浏览器中的后退按钮时,他无法返回详细信息页面,因此他无法看到甚至再次点击删除按钮,因为该产品不再存在。