历史推送和替换之间的权衡是啥?
Posted
技术标签:
【中文标题】历史推送和替换之间的权衡是啥?【英文标题】:What is the trade off between history push and replace?历史推送和替换之间的权衡是什么? 【发布时间】:2017-01-13 09:15:59 【问题描述】:我使用 History 包将无效 URL 重定向到我的 react 组件上的 404 页面。
我使用.replace
而不是.push
只是因为我不希望浏览器记录我访问过的任何无效网址。
我错过了这里的重点吗?为我的目的选择一个或另一个之间是否有权衡?
谁能给我解释一下?在此先感谢;)
【问题讨论】:
【参考方案1】:我认为你的想法是正确的。
我个人使用.replace
从无效网址重定向(或不相关,即当登录用户转到“/登录”网址时重定向到“个人资料”页面),因此使用浏览器的“返回”按钮有效适合最终用户。
【讨论】:
【参考方案2】:router.replace 的作用类似于 router.push,唯一的区别是它在导航时不推送新的历史条目,顾名思义 - 它替换当前条目。
【讨论】:
【参考方案3】:当我有明确的操作并且我不希望用户能够返回此页面时,我喜欢使用.replace()
。
示例:我有一个带有删除按钮的产品详细信息页面,用于最终删除产品。当我单击按钮时,我会 router.replace
返回所有产品列表,因此当用户在浏览器中使用后退按钮时,他无法返回详细信息页面,因此他无法看到甚至再次单击删除按钮因为这个产品已经不存在了。
【讨论】:
以上是关于历史推送和替换之间的权衡是啥?的主要内容,如果未能解决你的问题,请参考以下文章