Vue中的路由传参的常用方式

 

在父组件中的router-link中的name值对应 index.js 路由文件中的路由匹配规则中的name值,(name值对应关系起主导作用,如果在router-link中还写有path会被忽略),此时能够完成最基本的路由跳转。

  • params对应post方式的传参,所以如果需要通过路由传递参数,只需要在router-link中添加params属性,将需要传递的参数填入,并且在路由规则中给path路径后,以  /:value 的方式为路由传递的参数占位,此时的path路由地址中的占位符会读取你在router-link中传递的对应名称的数据。
  • query对应get方式的传参,并且在路由规则中给path路径后,以  /:value 的方式为路由传递的参数占位,此时的path路由地址中的占位符会读取你在router-link中传递的对应名称的数据,同时它会以 ?index=value 的url后缀的形式同时表现在url地址中

params和query这两种形式都可以传递参数,区别就在于query会把数据表现在url地址中,两种方式的取值方式分别为$route.params和$route.query。

 

 注意:如果在路由匹配规则中的路由地址没有完整的带参的地址,此时初始params 会被加载,但是刷新页面后params数据会被赋为null,query 不回出现这种情况。

解决办法:

1、常用的router-link中提供路由的 name值来查找路由地址,所以在路由匹配规则中添加完整的参数即可。 

 

2、如果不是使用name查找路由对应关系的,例如直接书写path的,则需要在router-link和路由匹配规则中带有完整的路由参数

 

深入了解query和params的使用区别

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue 2,有几种传递路由参数的方式。以下是其一些常见的方式: 1. 路径参数(Path Parameters):通过在路由路径添加占位符来传递参数。在定义路由时,可以使用`:`来指定参数名称,然后在实际跳转时,将对应的值填入路径。例如: ```javascript // 路由定义 { path: '/user/:id', component: User, } // 实际跳转 router.push('/user/123'); ``` 在上述例子,`:id`是一个占位符,代表要传递的参数名称,可以在`User`组件通过`$route.params.id`来获取传递的值。 2. 查询参数(Query Parameters):通过在URL添加查询参数来传递数据。可以使用`query`方法或者`router-link`组件的`to`属性来生成包含查询参数的URL。例如: ```javascript // query方法 router.push({ path: '/user', query: { id: 123 } }); // router-link组件 <router-link :to="{ path: '/user', query: { id: 123 } }">User</router-link> ``` 在上述例子,传递的参数名称是`id`,可以在`User`组件通过`$route.query.id`来获取传递的值。 3. 命名路由(Named Routes):给路由命名可以简化路由跳转,并且可以带有参数。首先,在定义路由时,给路由对象添加一个`name`属性。然后,在实际跳转时,使用`name`属性来指定要跳转的路由,并传递参数。例如: ```javascript // 路由定义 { path: '/user/:id', name: 'user', component: User, } // 实际跳转 router.push({ name: 'user', params: { id: 123 } }); ``` 在上述例子,通过给路由定义一个`name`属性,可以使用`name`属性来指定要跳转的路由,并通过`params`属性传递参数。在`User`组件,可以通过`$route.params.id`来获取传递的值。 这些是Vue 2常用路由传参方式,根据具体的需求,选择适合的方式来传递参数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值