vue3+ts点击怎么判断的数组里的数据类型并把id传到另一个页面
时间: 2024-05-08 12:21:47 浏览: 15
假设你有一个数组存储了不同类型的数据,包括 id、name 和 type 等属性,你需要在点击数组中某一个元素时,判断其类型并将对应的 id 传递到另一个页面。你可以按照以下步骤进行操作:
1. 给每个元素添加一个点击事件,例如:
```
<template>
<div v-for="(item, index) in itemList" :key="index" @click="handleClick(item)">
{{ item.name }}
</div>
</template>
```
2. 在 `handleClick` 方法中判断当前元素的类型并将其对应的 id 传递到另一个页面,例如:
```
<script lang="ts">
import { defineComponent } from 'vue';
import { useRouter } from 'vue-router';
interface ItemType {
id: number;
name: string;
type: string;
}
export default defineComponent({
name: 'ItemList',
props: {
itemList: { type: Array as () => ItemType[], required: true },
},
setup(props) {
const router = useRouter();
const handleClick = (item: ItemType) => {
if (item.type === 'type1') {
router.push(`/detail1/${item.id}`);
} else if (item.type === 'type2') {
router.push(`/detail2/${item.id}`);
} else {
console.error('Unknown item type!');
}
};
return { handleClick };
},
});
</script>
```
3. 在另一个页面中通过路由参数获取传递过来的 id,例如:
```
<script lang="ts">
import { defineComponent } from 'vue';
import { useRoute } from 'vue-router';
export default defineComponent({
name: 'Detail',
setup() {
const route = useRoute();
const id = Number(route.params.id);
// 根据 id 获取对应的数据并展示在页面上
return {};
},
});
</script>
```
以上就是一个简单的示例,希望能对你有所帮助。