router.replace跟router.push的区别 | 您所在的位置:网站首页 › place和replace的区别是什么 › router.replace跟router.push的区别 |
在学习案例过程中,遇到关于router.replace跟router.push的使用问题。 网上查询一番后,遇到一老哥的答案解释相对容易理解: 可以把路由router想象成一个访问记录的栈,router.replace() 是替换掉栈顶,而router.push() 则是向栈中再堆入一个新记录。 一般情况下,要做前进后退的浏览记录管理的,基本上都是用router.push(),但是也是有一些特殊情况需要用到router.replace()。 比如,有一个授权页,用户在按流程操作时,某一步需要授权,是直接跳到授权页,授权页提交授权请求,直到成功授权后,跳到流程中的下一步操作的地址。此处,授权请求的那页面应该用replace去替换掉自身的访问记录,防止用户跳到下一步流程后按后退键回退到授权页,而导致重复授权。 没有history的话,浏览器后退就无法找到上一个页面的了。 |
CopyRight 2018-2019 实验室设备网 版权所有 |