Vue中this.$router.push(参数) 实现页面跳转

Vue中this.$router.push(参数) 实现页面跳转很多情况下 我们在执行点击按钮跳转页面之前还会执行一系列方法 这时可以使用 this router push location 来修改 url 完成跳转 push 后面可以是对象 也可以是字符串 字符串 this router push home first 对象 this router push path home first

        很多情况下,我们在执行点击按钮跳转页面之前还会执行一系列方法,这时可以使用 this.$router.push(location) 来修改 url,完成跳转。

push 后面可以是对象,也可以是字符串:

// 字符串 this.$router.push('/home/first') // 对象 query相当与发送了一次get请求,请求参数会显示在浏览器地址栏中 this.$router.push({ path: '/home/first' }) // 命名的路由 params相当与发送了一次post请求,请求参数则不会显示,并且刷新页面之后参数会消失 this.$router.push({ name:'Login', params: { id: this.id } ) // 当路由配置更改为 //路由配置: //{path:'/login/:id',name:'Login',component:Login} //并且再次发送请求,请求数据不会随着页面的刷新而消失

跳转页面并传递参数的方法:

1.Params

由于动态路由也是传递params的,所以在 this.$router.push() 方法中path不能和params一起使用,否则params将无效。需要用name来指定页面。

及通过路由配置的name属性访问

在路由配置文件中定义参数:

/* router.js 文件*/ import Vue from "vue"; import Router from "vue-router"; import MediaSecond from "@/views/EnterprisePage/MediaMatrix/second"; //资讯列表 Vue.use(Router); export default new Router({ routes: [ /* 进行路由配置 */ { name: "MediaSecond", path: "/MediaSecond", component: MediaSecond }, ] }) /* 后面还需要接一空行,否则无法通过 ESlint 语法验证 */ 

通过name获取页面,传递params:

this.$router.push({ name: 'MediaSecond',params:{artistName:artistName,imgUrl:imgUrl,type:2} })

在目标页面通过this.$route.params获取参数:

if (this.$route.params.type == 2) { this.type = apis.getAtistDetails; } else { this.type = apis.getMessageList; }

2.Query

页面通过path/name和query传递参数,该实例中row为某行表格数据

this.$router.push({ name: 'DetailManagement', query: { auditID: row.id, type: '2' } }); this.$router.push({ path: '/DetailManagement', query: { auditID: row.id, type: '2' } });

在目标页面通过this.$route.query获取参数:

this.$route.query.type

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/214212.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午4:44
下一篇 2026年3月18日 下午4:44


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号