转载:https://www.cnblogs.com/lwwen/p/7245083.html

   https://blog.csdn.net/qq_15385627/article/details/83146766

1.router.push(location)=====window.history.pushState

想要导航到不同的 URL,则使用 router.push 方法。这个方法会向 history 栈添加一个新的记录,所以,当用户点击浏览器后退按钮时,则回到之前的 URL。

// 字符串
router.push('home') // 对象
router.push({ path: 'home' }) // 命名的路由
router.push({ name: 'user', params: { userId: 123 }}) // 带查询参数,变成 /register?plan=private
router.push({ path: 'register', query: { plan: 'private' }})

2.router.replace(location)=====window.history.replaceState

跟 router.push 很像,唯一的不同就是,它不会向 history 添加新记录,而是跟它的方法名一样 —— 替换掉当前的 history 记录

3.router.go(n)====window.history.go

// 在浏览器记录中前进一步,等同于 history.forward()
router.go(1) // 后退一步记录,等同于 history.back()
router.go(-1) // 前进 3 步记录
router.go(3) // 如果 history 记录不够用,那就默默地失败呗
router.go(-100)
router.go(100)

附:----------------------------

vue.router中replace需要返回两次问题及解决方案

 
  • 问题:现有三个页面a , b , c , 递进关系,a页面router.push跳转至b,b再router.push跳转至c,c使用$router.replace()回到b,然后点击b页面的返回键,需要点击两次才能回到a页面
  • 需求:c保持router.replace至b方式不变,b页面返回键点击一次正常返回a页面
  • 解决方法:使用replace方法之后,再使用router.go(-1)方法返回一次就可以。
    例:
    this.router.replacePage({name:'b'})
    this.router.go(-1)
  • 原理:先解析一下几种页面跳转方式的不同,
  1. router.push : 跳转到新的页面,向history栈添加新一个新纪录,点击返回,返回到上一级页面。
  2. router.replace: 打开新的页面,不会像history添加新纪录,而是直接替换掉当前记录。
  3. router.go: 在history有记录的情况下,前进后退相应的页面。
    页面的跳转记录就是:a->b->c->b
    页面的堆栈记录则是:a->b->b
    那么返回的时候路线就是b->b->a,相当于b页面有两个,但由于b页面是一模一样的,所以视觉上是觉得点了两次返回键。
    那么解决的思路就很清晰了,减少history中的b的记录,就是在用b替换c页面记录同时,回退一页,记录就变成a->b,返回的时候自然是直接回到a。
 

vue router.push(),router.replace(),router.go()和router.replace后需要返回两次的问题的更多相关文章

  1. vue router.push(),router.replace(),router.go()

    1.router.push(location)=====window.history.pushState 想要导航到不同的 URL,则使用 router.push 方法.这个方法会向 history ...

  2. router.go,router.push,router.replace的区别

    除了使用 <router-link> 创建 a 标签来定义导航链接,我们还可以借助 router 的实例方法,通过编写代码来实现.当你点击 <router-link> 时,这个 ...

  3. Vue页面跳转$router.push 的用法

    vue2.0在使用的过程中, .vue文件之间的跳转,在template中的常见写法是: <router-link to="/miniCard/statement/horizon&qu ...

  4. vue中this.$router.push()路由传值和获取的两种常见方法

    1.路由传值   this.$router.push() (1) 路由跳转使用router.push()方法,这个方法会向history栈添加一个新纪录,所以,当用户点击浏览器后退按钮时,会回到之前的 ...

  5. vue 中router.go;router.push和router.replace的区别

    vue 中router.go:router.push和router.replace的区别:https://blog.csdn.net/div_ma/article/details/79467165 t ...

  6. vue中router.go、router.push和router.replace的区别

    router.go(n) 这个方法的参数是一个整数,意思是在history记录中向前或者后退多少,类似window.history.go(n) router.push(location) 想要导航到不 ...

  7. vue 中router.go、router.push和router.replace的区别

    router.go(n) 这个方法的参数是一个整数,意思是在 history 记录中向前或者后退多少步,类似 window.history.go(n) router.push(location) 想要 ...

  8. Vue this.$router.push、replace、go的区别

    1.this.$router.push 描述:跳转到不同的url,但这个方法会向history添加一个记录,点击后会返回到上一个页面 用法 //字符串 this.$router.push('home' ...

  9. vue 之this.$router.push、replace、go的区别

    一.this.$router.push 说明:跳转到指定URL,向history栈添加一个新的记录,点击后退会返回至上一个页面 使用: this.$router.push('/index') this ...

随机推荐

  1. jquery禁用a标签

    jquery禁用a标签方法1 01 02 03 04 05 06 07 08 09 10 11 12 $(document).ready(function () {         $("a ...

  2. ht学习流程

    http://www.hightopo.com/blog/461.html数百个 HTML5 例子学习 HT 图形组件 掌握 HT 基础: 1.先入门手册 http://www.hightopo.co ...

  3. android页面渲染速度提升的常用方法

    参考文档:http://blog.csdn.net/vector_yi/article/details/24402101 当activity中用到的布局较多较为复杂时,页面渲染就会变得复杂,现汇总以下 ...

  4. auto 和 decltype

    一, auto 1, auto的作用     一般来说, 在把一个表达式或者函数的返回值赋给一个对象的时候, 我们必须要知道这个表达式的返回类型, 但是有的时候我们很难或者无法知道这个表达式或者函数的 ...

  5. SQL Server - NOLOCK

    NOLOCK 一般用于此类语句中:select * from t with(NOLOCK)nolock是不加锁查询,可以读取被事务锁定的数据,也称为脏读.说明:使当前会话的查询,不受其它会话的事务所阻 ...

  6. PyQt4 / PyQt5

    Python事多,做个笔记,区分. PyQt5 Reference Guide http://pyqt.sourceforge.net/Docs/PyQt5/index.html Qt4 signal ...

  7. Faster_RCNN 4.训练模型

    总结自论文:Faster_RCNN,与Pytorch代码: 本文主要介绍代码最后部分:trainer.py  .train.py , 首先分析一些主要理论操作,然后在代码分析里详细介绍其具体实现.首先 ...

  8. c#基础之异常处理

    在开发过程中,经常遇到各种各样的小问题,很多是由于基础不牢固,没有经常总结导致的.遇到重复的问题可能可根据以往经验处理,但是对问题本身引发的原因进行深入的了解.工作很多年,但是c#基础像一层冰一样,可 ...

  9. 求逆序对 ----归并排 & 树状数组

    网上看了一些归并排求逆序对的文章,又看了一些树状数组的,觉得自己也写一篇试试看吧,然后本文大体也就讲个思路(没有例题),但是还是会有个程序框架的 好了下面是正文 归并排求逆序对 树状数组求逆序对 一. ...

  10. office xml 方式

    office2007以上版本(2003需要增加2007插件)可以采用xml方式操作生成excel,效率高,无并发问题,比传统com组件方式更方便