<router-link>动态路由传参并接收参数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意:
在子组件中 获取参数的时候是$route.params而不是
$router 这很重要~~~
在这里插入图片描述
在这里插入图片描述


通过@click方法传参跳转

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
参考:https://www.cnblogs.com/qiu2841/p/11018190.html

### Vue.js 中 `router-link` 的 `to` 属性动态路由参数传递 在 Vue.js 中,可以通过 `<router-link>` 组件的 `to` 属性来实现页面之间的跳转,且支持通过路径(`path`)或者命名路由(`name`)的方式传递动态参数。以下是详细的说明和示例。 #### 1. 使用 `path` 方式传递动态参数 当使用 `path` 进行动态路由参数传递时,可以直接将参数拼接到 URL 路径中。例如: ```html <router-link :to="{ path: '/user/' + userId }">User Profile</router-link> ``` 在这个例子中,假设 `userId` 是一个变量,则最终生成的链接可能是 `/user/123` 或者其他类似的路径[^1]。 如果需要传递多个查询参数,也可以通过 `query` 对象完成: ```html <router-link :to="{ path: '/search', query: { keyword: 'Vue.js', page: 1 } }"> Search Results </router-link> ``` 上述代码会生成类似于以下的 URL 地址: `http://example.com/search?keyword=Vue.js&page=1`[^4]。 --- #### 2. 使用 `name` 和 `params` 方式传递动态参数 除了 `path` 外,还可以利用命名路由(`name`)配合 `params` 来传递参数。这种方式更适合于嵌套路由或更复杂的场景。 首先,在定义路由时需设置名称字段: ```javascript const routes = [ { name: 'UserProfile', path: '/user/:id', component: UserProfileComponent, }, ]; ``` 接着可以在模板中这样写: ```html <router-link :to="{ name: 'UserProfile', params: { id: userId } }"> User Profile </router-link> ``` 这里需要注意的是,如果使用 `params`,则必须搭配 `name` 属性而不是 `path`,因为只有命名路由才能识别 `params` 参数接收这些参数的地方通常是在目标组件中的生命周期钩子函数里获取它们: ```javascript export default { data() { return { currentUserId: null, }; }, created() { this.currentUserId = this.$route.params.id; }, }; ``` --- #### 3. 查询字符串方式 (`query`) 对于一些简单的过滤条件或其他非必要信息,推荐采用查询字符串的形式传参。这不仅方便调试,也更容易被搜索引擎抓取。 下面是一个实际的例子: ```html <router-link :to="{ path: '/products', query: { category: 'electronics', sort: 'asc' } }"> Electronics Products (Ascending Order) </router-link> ``` 访问该链接后,URL 将变为类似形式: `http://example.com/products?category=electronics&sort=asc`。 而在对应的组件内部可通过 `$route.query` 获取这些值: ```javascript this.categoryFilter = this.$route.query.category || 'all'; this.sortOrder = this.$route.query.sort || 'desc'; ``` --- #### 总结 无论是通过 `path`、`name` 加上 `params`,还是借助 `query` 字符串,都可以灵活满足不同业务需求下的动态路由参数传递。具体选择哪种方式取决于项目设计和个人偏好。 ```html <!-- Path with Query --> <router-link :to="{ path: '/item', query: { productId: item.id } }"> Item Details </router-link> <!-- Named Route with Params --> <router-link :to="{ name: 'ItemDetails', params: { itemId: item.id } }"> View Item </router-link> ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值