router返回上一页传惨 vue_vue-router参数传递

本文详细介绍了在Vue Router中通过GET、POST和路由参数三种方式传递参数的方法及其效果。GET方式参数在URL上可见,刷新不消失;POST方式参数不显示,刷新消失;路由参数方式URL可见且刷新不消失。同时提到了`router-link`的`replace`属性影响历史记录,以及$router与$route的区别和使用场景。
摘要由CSDN通过智能技术生成

第一种:get方法

传值:

get跳转

//或

get跳转

接收值:

//在get.vue文件中

get跳转页

userId:{{userId}}

username:{{username}}

data(){return{//接收值:

userId:this.$route.query.userId,

username:this.$route.query.username,

}

}

}

结果:url上显示参数,页面刷新后参数不会消失;

第二种:post方法

传值:

post跳转

//路由path带着路由参数params时,params不生效,错误示范:

post跳转

接收值:

post页面

studentId:{{stuId}}

studentName:{{stuName}}

data(){return{//接收值:

stuId:this.$route.params.stuId,

stuName:this.$route.params.stuName,

}

}

}

结果:url上不显示参数,页面刷新后参数会消失;

第三种:路由方法

传值:

路由跳转

接收值:

路由传值

rouId:{{rouId}}

rouName:{{rouName}}

data(){return{

rouId:this.$route.params.rouId,

rouName:this.$route.params.rouName,

}

}

}

结果:url上显示参数,页面刷新后参数不会消失;

注意:

(1)

上文中router-link中的path和name都是路由里面的,页面创建成功后一定要配置页面的路由;

上文中第三种方法,还在路由中也进行了相应的配置;

路由中的配置:

import Vue from 'vue'import Router from'vue-router'import HelloWorld from'@/components/HelloWorld'Vue.use(Router)

exportdefault newRouter({

routes: [

{

path:'/',

name:'HelloWorld',

component: HelloWorld

},

{

path:'/get',

name:'get',

component: resolve=> require(['../components/get.vue'], resolve),

meta: {

title:'get'},

},

{

path:'/post',

name:'post',

component: resolve=> require(['../components/post.vue'], resolve),

meta: {

title:'post'},

},

{

path:'/route/:rouId/:rouName?'name:'route',

component: resolve=> require(['../components/route.vue'], resolve),

meta: {

title:'route'},

}

]

})

(2)

当在链接上设置replace属性,点击时,会调用router.replace()而不是router.push(),于是浏览器不会留下history记录,也就是无法返回上一页,但会进入上上页;

(3)

在组件中获取参数:

{{$route.params.userId}}

{{$route.params.userName}}

简单说明router和route的区别:

$router :是指整个路由实例,你可以操控整个路由,用法如下:

this.$router.go(-1); // 向前或者向后跳转n个页面,n可为正整数或负整数

this.$router.push('/'); // 跳转到指定url路径,history栈中会有记录,点击返回会跳转到上个页面

this.$router.replace('/'); // 跳转到指定url路径,但是history栈中不会有记录,点击返回会跳转到上上个页面

$route:是指当前路由实例$router跳转到的路由对象;路由实例可以包含多个路由对象,它们是**父子包含关系**.

this.$route.params.userId// 获取路由传递过来的参数

this.$route.query.userName// 获取路由传递过来的参数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值