vue-router 跳转中的 replace 和 push 的区别

370 阅读1分钟

this.$router.push('url') url是路由路径的意思,例如 /404

意思是跳转到指定的路由,它会向 history 里面添加记录,但是它会有一个bug,点回退的时候会回到上一个页面,然而上一个页面路径本来就是错的,就又回到了这个this.$router.push('url')的页面,会造成回退不了的情况。

this.$router.replace('url')

意思也是跳转到指定的路由,这个方法不会向 history 里面添加新的记录,所以不会造成上面那种回退不了的情况发生。

再多介绍个东西,就是

this.$router.go(n)
n可以为正数,也可以为负数,负数是返回上一个页面,后退一步记录,等同于 history.back(),前进一步,等同于 history.forward()

意思是相对于当前页面,向前或者向后跳转页面 ,类似 window.history.go(n)