vue3 setup lang=ts实现router-link的动态传参

一、实现目标

 可以通过router-link在url里面配置参数然后传递给markdown页面

二、页面配置

主页面,即配置router-link的页面

templates:
<router-link :to="{ path: `/mark/${itemId}` }">fff</router-link>

script:
const itemId = ref('333');

接收数据页面,即mark页面

import { useRoute } from 'vue-router';
const route = useRoute();
const routeParams = route.params.id;
console.log(routeParams);

此时,打印的  routeParams  的值就是 itemId的值 333

当然,不要忘记修改路由的router的index.js

{path: '/mark/:id', name: 'mark', component: mark, meta: { title: 'mark' }},

主要是在path的地方增加一个 :id参数,否则在访问带id的url时会报错

实现效果如下:

Vue Router 中,通过 `router-link` 组件传递 query 参数到新页面时,可以使用 TypeScript 来提取和使用这些参数。以下是具体步骤和示例代码: 1. **传递参数**: 在原页面使用 `router-link` 组件传递 `id` 参数。假设我们有一个列表项需要点击后跳转到详情页面,并传递该项的 `id`。 ```vue <template> <div> <ul> <li v-for="item in items" :key="item.id"> <router-link :to="{ path: &#39;/detail&#39;, query: { id: item.id }}"> {{ item.name }} </router-link> </li> </ul> </div> </template> ``` 2. **接收参数**: 在新页面中,使用 `useRoute` 钩子函数获取路由对象,并通过 `route.query.id` 访问传递的参数。 ```typescript <template> <div> <h1>Details Page</h1> <p>ID: {{ id }}</p> </div> </template> <script lang="ts"> import { defineComponent, ref } from &#39;vue&#39;; import { useRoute } from &#39;vue-router&#39;; export default defineComponent({ setup() { const route = useRoute(); const id = ref(route.query.id as string); // 确保类型为 string,可以根据实际需求更改类型 return { id }; }, }); </script> ``` 3. **处理参数**: 可以在新页面的 `setup` 函数中进一步处理这个 `id` 参数,例如根据 `id` 进行数据请求等操作。 ```typescript <script lang="ts"> import { defineComponent, ref, onMounted } from &#39;vue&#39;; import { useRoute } from &#39;vue-router&#39;; import { fetchItemDetails } from &#39;./api&#39;; // 假设有一个 api 模块用于数据请求 export default defineComponent({ setup() { const route = useRoute(); const id = ref(route.query.id as string); const itemDetails = ref({}); onMounted(async () => { itemDetails.value = await fetchItemDetails(id.value); }); return { id, itemDetails }; }, }); </script> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lytcreate.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值