vue中的动态路由传参

vue中的动态路由传参

对于常见的路由动态传参 有两种方式一种为 query的导航传参方式 通过 path和query的结合 ,参数一般可以在地址栏中看到 在组件中通过 $route.query进行参数的获取,另一种方式就是 组件name和params的方式进行传参,参数在地址栏中以/参数值/参数值的形式出现的,在组件中通过$route.params的方式进行数据的获取的 这两种方式都可以实现动态路由的参数传递,但是存在较高的耦合性 比如我们通过params方式传递参数只能在特定的页面通过 $route.params的方式获取 但是我们通过props的方式则可以解耦,提高组件的复用性

第一种方式

props:ture (这种模式在进行参数传递的时候切记得是params这种模式 query这种模式不生效)

//在router/index.js的传参组件页面添加

new Router({
 routes:[
 {path:/index’,
 name:"form"
  component:()=>import('@view/form/index');
  props:ture//开启组件参数传递
 }
]
})

在a页面

this.$router,push({
name:"form',
params:{
 user:{
 name:"张三",
 age:23
}
})
//还可以是采用动态路由的方式
{path:"xxx/xxx/:id"}
页面地址
xxx/xxx/12
这在使用的页面通过
props:{
id:Number,
default:0
}
进行使用即可


在form页面

props:{
user:{
type:Object,
default:{}
}

}
//然后在form页面可以开心的使用user这个对象了

第二种方式(这种方式传递的是query的数据格式)

通过函数的方式

new Router({
 routes:[
 {path:/index’,
 name:"form"
  component:()=>import('@view/form/index');
  props:(route)=>{
   return {
   user:route.query.user //将传递过来的数据通过返回值的形式进行返回
}//开启组件参数传递
 }
]
})

第三种方式

传递静态的数据

new Router({
 routes:[
 {path:/index’,
 name:"form"
  component:()=>import('@view/form/index');
  props:{
   user:{
   name:"张三",
   age:"18"
}
}
 }
]
})

如需补充请评论区留言

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue,可以通过路由数给HTML页面。有两种常用的方式:使用query和params。 1. 使用query:使用query可以在URL数。在路由配置,可以通过设置路由的path和query来数。例如,在路由配置设置path为'/homeDetail',并在跳转时携带数'id',可以使用如下代码: ```javascript <router-link :to="'/homeDetail?id=' + homeKey">{{listItem.title}}</router-link> ``` 在子页面,可以通过`this.$route.query`来获取URL数。例如,在mounted钩子,可以通过如下代码获取'id'数: ```javascript mounted() { console.log(this.$route.query.id); } ``` 2. 使用params:params可以在路由之间数,但需要在路由配置定义数名。例如,在A页,可以使用如下代码数'id': ```javascript <router-link :to="{path:'/detail', query:{id:'1001'}}">到详情页</router-link> ``` 在B页,可以通过`useRoute`来获取路由数。首先,需要引入`useRoute`函数: ```javascript import { useRoute } from 'vue-router' ``` 然后,在组件使用`useRoute`函数获取路由数。例如,在B页,可以通过如下代码获取'id'数: ```javascript const route = useRoute() console.log('route:', route.query.id) ``` 以上就是Vue使用HTML路由的方法。可以根据具体的需求选择适合的方式来数。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [vue路由路由(parmas,query)](https://blog.csdn.net/Xiaocong__/article/details/122932200)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [vue3路由](https://blog.csdn.net/m0_69502730/article/details/126513513)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值