VueRouter路由组件传参

今天重新过了一遍VueRouter的文档,梳理和总结了一下关于路由组件传参的一些思路,记下来防止以后忘记。

使用route-link传参

<router-link :to="{name:'content',query:{name:123}}" >content</router-link>

<router-link :to="{name:'content',params:{name:123}}" >content</router-link>

<router-link :to="{path:'/content',query:{name:123}}" >content</router-link>

  •  使用path路径跳转 传参必须使用query 使用命名视图跳转 params和query都可以 
  • 使用params如果路由路径上没有参数接收 刷新页面数据会丢失,使用query会把参数显示在地址栏路径上,此时刷新数据数据不会丢失

 使用编程式导航传参

  普通传参

var param={name:{name:"111",age:"222",grade:"一年级"},age:12}

this.$router.push({name:"ChildContent",params:param})

this.$router.push({name:"ChildContent",query:param})

this.$router.push({path:"/ChildContent",params:param})

  •  同上 使用path路径跳转 传参必须使用query 使用命名视图跳转 params和query都可以 

动态路由传参

 

route.js
{
      path: '/ChildContent/:id/post/:name',
      component: ChildContent,
      name:"ChildContent",
      props:true  //此时params就是组件的props
}
执行跳转的组件
var param={name:{name:"111",age:"222",grade:"一年级"},age:12}
this.$router.push({path:"ChildContent/123/post/456",query:param}) 
跳转到的组件
 mounted(){
        console.log(this.$route);
        console.log(this.id,this.name);
    },
 props:["name","id","params"]

打印结果

  • 此时刷新params数据不会丢失 因为在路由路径上有对应的数据 比方上面的id和name
  • 在router对象中有props选项 会让传递的params参数当做跳转到页面props中的参数 不需要通过this.$route获取 有解耦的作用 推荐这种
  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值