路由在跳转对应的组件时,怎么进行传值的

目标:在跳转路由时,可以给路由对应的组件内传值

1.声明式导航-跳转传参

声明式:直接在to后面写确定的跳转路径

方式1:在router-link上的to属性传值:/path?参数名=值

比如:<router-link to="/my?name=zs&age=18&id=5"></router-link>

接收这种形式的值: $route.query 获取到路由规则(参数的信息,路径)

 js中:  created(){this.$route.query.name}

style中:{{ $route.query.name }}

方式2:在router-link的to属性传值:/path/值

前提:需要在路由对象(路由规则)的path:配置成 path:"/path/:参数名“,冒号不能省略

比如:<router-link to="/find/小赛"></router-link>

  routes:[{ path:"/find/:name,component:Find}]

js中:created (){ this.$route.params.name}

style中:{{ $route.params.name}}

两者之间的差别:

/api?type=user&id=23 ==>query直接传值<==this.$route.query接收值

/users/12345 ===>利用变量-路径传值<==this.$route.params接收传的值

编码的时候剋提供合理的资源名称:利用url分层特性,暗示结构

2.编程式导航-跳转传参

编程式:js来控制组件的跳转 ==>登录成功,进行跳转

两种方式进行编程式跳转

this.$router.push({ path:"路由路径",})

this.$router.push({ name:" 路由名",}) ==>前提:需要在routes:

例如:

[{path:"/my",component:myfind,name="username}] 

this.$router.push({name:"username})

path传参:path:“/” query:{}  <==仅支持query传值

name传参:name:" 组件名" <==既支持query传值,也支持params传值

path:接收传过来的值 created(){ this.$route.query}

name:接收传过来的值:created (){this.$route.params}

区别:path和name相比较:name跳转更稳定一些,path只支持query传值,name既支持query又支持params传值

params和query的比较:query传的值会在地址栏传递,query页面刷新还存在,params通过配合nme传参,在内存传参,性能很高,但是页面刷新值就不在了,传一些临时的值可以利用params,或者隐秘性,安全性很高的数据,可以使用params。我们可以配合本地存储进行配合使用。

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值