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

Kri*_* MP 21 browser-history reactjs react-router

我使用History包将无效的URL重定向到我的react组件上的404页面.

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

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

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

vgr*_*afe 19

我认为你有正确的想法.

我个人使用.replace从无效网址重定向(或非相关,即当登录用户转到"/ login"网址时重定向到"个人资料"页面),因此使用浏览器的"后退"按钮可以为最终用户正常工作.


Rob*_*roj 13

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

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


kra*_*uba 9

router.replace的行为与router.push相似,唯一的区别是,它导航时没有推送新的历史记录条目,顾名思义-它替换了当前条目。