vue如何通过$router.push传参数

如何通过$router.push传参数

下面通过A页面向B页面传值来举个例子:

//A页面: 
this.$router.push({
    name: '页面B',
    params: { data: '我是要传递的参数' }
})
//B页面拿到传来的值: 
this.data = this.$route.params.data // 拿到上个页面传来的数据

代码很简单, 一下是需要注意的几点:

1.this.$router.push()方法里的params 可以传多个参数, 如:

//A页面
this.$router.push({
    name: '页面B',
    params: { data1: '参数1', data2: '参数2'}
})
//B页面, 拿到传来的参数
this.data1 = this.$route.params.data1
this.data2 = this.$route.params.data2

2.this.$router.push()方法除了可以传递一般参数以外, 还能传递查询参数,代码如下:

this.$router.push({path: '/pagePath', query: {queryData: "2"}});

最终的效果是: /pagePath?queryData=2

this.$router.push传参及参数接收

1、两种方式

方法一:name跳转页面

this.$router.push({name:'anotherPage',params:{id:1}});

另一页面接收参数方式:

this.$route.params.id

示例:

vue如何通过$router.push传参数_第1张图片

控制台展示:

vue如何通过$router.push传参数_第2张图片

方法二:path跳转页面

this.$router.push({path:'/anotherPage',query:{id:1}});

另一页面接收参数方式:

this.$route.query.id

vue如何通过$router.push传参数_第3张图片

2、区别

1、path的query传参的参数会带在url后边展示在地址栏(/anotherPage?id=1),name的params传参的参数不会展示到地址栏。

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

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

你可能感兴趣的:(vue如何通过$router.push传参数)