欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Vue路由传递参数的三种方式

程序员文章站 2022-05-18 15:29:51
...

通过动态路由方式

主要适用于传递一个参数的路由跳转,比如详情页。

//路由配置文件中 配置动态路由
{
     path: '/detail/:id',
     name: 'Detail',
     component: Detail
   }
//跳转时页面
var id = 1;
this.$router.push('/detail/' + id)
 
//跳转后页面获取参数
this.$route.params.id

通过params获取参数

Params只能通过name方式跳转路由。

不配置path参数

第一次获取路由参数能获取到,刷新页面后获取不到路由参数

//路由配置文件中 不配置path参数
path: "/projFeedbackDetail",
      name: "ProjFeedbackDetail",
      component: ProjFeedbackDetail

//跳转时页面
this.$router.push({
        name: "ProjFeedbackDetail",
        params: {
          prjId: this.prjId,
          cycleId: this.cycleId,
          feedbackIdKey: feedbackIdKey
        }
      });


//跳转后页面
this.prjId = this.$route.params.prjId;
this.cycleId = this.$route.params.cycleId;
this.feedbackIdKey = this.$route.params.feedbackIdKey;

配置path参数

第一次获取路由参数能获取到,刷新页面后也能获取到路由参数

路由配置页面改为

//路由配置文件中 配置path参数
path: "/projFeedbackDetail/:prjId/:cycleId/:feedbackIdKey",
      name: "ProjFeedbackDetail",
      component: ProjFeedbackDetail

通过query获取参数

Query可以使用name和path两种方式跳转路由.。

//路由配置文件中
{
     path: '/detail',
     name: 'Detail',
     component: Detail
   }
//跳转时页面
this.$router.push({
  path: '/detail',
  query: {
    name: '张三',
    id: 1,
  }
})
 
//跳转后页面获取参数对象
this.$route.query

params和query获取路由参数的区别

query类似 get, 跳转之后页面 url后面会拼接参数,类似?id=1, 非重要性的可以这样传, 密码之类还是用params配置path参数的方式。

params类似 post, 跳转之后页面 url后面不会拼接参数 , 但是如果不配置path参数的话刷新页面参数会消失