vue中$router.back()和$router.go()的用法

 更新时间:2022年09月10日 09:10:11   作者:星宫莓  
这篇文章主要介绍了vue中$router.back()和$router.go()的用法,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

$router.back()和$router.go()

返回上一页,有两种方法:

1. $router.back()

2. $router.go()

使用$router.back()和$router.go(-1)作用相同,都是返回原页面,但如果原页面路由携带参数,使用以上两个方式返回的原页面路由参数消失,此时使用$router.back(-1)返回原页面路由,参数仍存在。

  • go(-1):原页面表单中的内容会丢失;
  • this.$router.go(-1):后退+刷新;
  • this.$router.go(0):刷新;
  • this.$router.go(1):前进; 
  • history.go(-1):后退+刷新;
  • history.go(1):前进; 
  • back():原页表表单中的内容会保留;
  • this.$router.back():后退
  • this.$router.back(0) 刷新
  • this.$router.back(1) 前进 
  • history.back() 后退
  • history.back(0) 刷新
  • history.back(1) 前进

vue点击按钮跳转页面总结 router.push router.replace router.go

总结一下在Vue里面跳转页面的方法

首先是vue提供的router-link,使用后再页面里会转换为a标签

<router-link to="/test">go home</router-link>

使用函数进行任意页面跳转

普通跳转

<button @click="jump('/test')">Click Me</button>    // 这里进行设置要跳转的路由
methods: {
        jump (path) {
            this.$router.replace(path)
        }
        
        // 或者
        jump (path) {
            this.$router.push({path: path})
        }
    }

带参数跳转

<button @click="jump('/test')">Click Me</button>    // 这里进行设置要跳转的路由
methods: {
        jump (path) {
            this.$router.push({path: `${path}?a=1`})
        }
        
        // 或者
        jump (path) {
            this.$router.push({path: path, query:{a:123}})
        }
    }

前进

@click="$router.go(1)"

后退

@click="$router.back()"
    // 或者
@click="$router.go(-1)"

刷新当前页面

@click="$router.go(0)"
    // 或者
window.location.reload()
    // 或者
history.go(0)

解析router.push 和 router.replace的区别 

先说结论:router.push会在浏览器历史纪录里面添加一条记录,router.replace不会在浏览器的历史记录里面添加信息。也就是通过router.push跳转的页面能够返回上一页。这里的上一页指的是跳转之前的那一页

验证:首先打开一个新的vue项目,把鼠标指针放在浏览器左上角的回退按钮并按住左键,能够看到目前浏览器历史记录除了默认新开打的一个页面没有任何其他vue路由信息

使用 this.$router.replace(path)这个方法跳转后,再次点击,可以看到路由跳转后,历史纪录里面跟新打开的项目一样。

说明使用router.replace不会往浏览器历史记录里添加信息。并且点击返回按钮也是返回到空页面,并不会返回到vue的首页

然后使用this.$router.push(path)方法,点击跳转后能够看到历史记录里面多了一条记录

点击返回后,也能够返回到首页。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 使用vue-video-player实现直播的方式

    使用vue-video-player实现直播的方式

    在开发期间使用过video.js、mui-player等插件,发现这些video插件对移动端的兼容性都不友好,最后发现一个在移动端兼容不错的插件vue-video-player,下面通过场景分析给大家介绍使用vue-video-player实现直播的方法,感兴趣的朋友一起看看吧
    2022-01-01
  • vue如何解决循环引用组件报错的问题

    vue如何解决循环引用组件报错的问题

    这篇文章主要介绍了vue如何解决循环引用组件报错的问题,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • vue3路由router.push的使用以及问题分析

    vue3路由router.push的使用以及问题分析

    页面跳转有很多方法,本次使用的是 vue-router,但却在使用 router.push 的时候遇到了点麻烦,所以记录下来,希望可以帮助有需要的人
    2023-09-09
  • vue中使用swiper轮播图的正确姿势(亲测有效)

    vue中使用swiper轮播图的正确姿势(亲测有效)

    最近在用Vue制作移动端项目,碰到了轮播图的制作,接下来就让小编一步一步带大家动作制作吧,下面这篇文章主要给大家介绍了关于vue中使用swiper轮播图的正确姿势,需要的朋友可以参考下
    2022-06-06
  • vue自动化路由的实现代码

    vue自动化路由的实现代码

    这篇文章主要介绍了vue自动化路由的实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • 一文详解Vue3响应式原理

    一文详解Vue3响应式原理

    这篇文章主要介绍了一文详解Vue3响应式原理,文章通过与vue2.x 的响应式做对比详解展现出了Vue3响应式原理详情,感兴趣的小伙伴可以参考一下
    2022-06-06
  • Vue 中 provide和inject的使用

    Vue 中 provide和inject的使用

    这篇文章主要介绍了Vue中provide和inject的使用,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下
    2022-08-08
  • 使用Vue实现一个树组件的示例

    使用Vue实现一个树组件的示例

    这篇文章主要介绍了使用Vue实现一个树组件的示例,帮助大家更好的理解和使用vue框架,感兴趣的朋友可以了解下
    2020-11-11
  • Vue多重文字描边组件实现示例详解

    Vue多重文字描边组件实现示例详解

    这篇文章主要为大家介绍了Vue多重文字描边组件实现示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • vue中组件间多种传值方式案例详解

    vue中组件间多种传值方式案例详解

    vue中每个组件都是隔离的,包括父组件和子组件,各组件之间需要数据通信,就涉及到了组件传值,本文给大家介绍vue中组件间多种传值方式案例,感兴趣的朋友跟随小编一起看看吧
    2024-03-03

最新评论