制作后台管理系统使用EleAdminPro 前端框架,框架集成:Vue3、Ant Desgin Vue、Vite、TypeScripts,如何实现触发列表的详情的点击事件时携带所点击行的id并跳转到另一个详情页面,详情页面使用a-card组件且该页面拥有五个不同的标题,当点击不同a-card的标题时需要展示不同的内容
时间: 2024-04-08 07:35:37 浏览: 93
vue3+ts+vite+router+vuex+api请求封装
在Vue3中,可以通过事件绑定和路由来实现点击列表详情时携带ID并跳转到另一个详情页面,并且在详情页面根据标题展示不同的内容。
首先,在列表中每一行的点击事件中,可以通过传递参数的方式将所点击行的ID传递给路由。例如:
```html
<template>
<div>
<a-table @row-click="handleRowClick">
<!-- 列表内容 -->
</a-table>
</div>
</template>
<script>
export default {
methods: {
handleRowClick(row) {
// 获取所点击行的ID
const id = row.id;
// 跳转到详情页面,并携带ID参数
this.$router.push({
name: 'details',
params: {
id: id
}
});
}
}
};
</script>
```
在上面的代码中,我们使用了`@row-click`事件监听每一行的点击事件,并通过`row`参数获取到所点击行的ID。然后,使用`this.$router.push`方法跳转到名为`details`的路由,并通过`params`参数传递ID。
接下来,在详情页面中,可以根据路由参数中的ID来展示不同的内容。例如:
```html
<template>
<div>
<a-card :title="title" bordered>
<!-- 根据标题展示不同的内容 -->
<div v-if="title === 'Title 1'">
<!-- 内容1 -->
</div>
<div v-else-if="title === 'Title 2'">
<!-- 内容2 -->
</div>
<!-- 其他标题对应的内容 -->
</a-card>
</div>
</template>
<script>
export default {
data() {
return {
title: ''
};
},
mounted() {
// 获取路由参数中的ID
const id = this.$route.params.id;
// 根据ID设置不同的标题
if (id === '1') {
this.title = 'Title 1';
} else if (id === '2') {
this.title = 'Title 2';
}
// 其他ID对应的标题
}
};
</script>
```
在上面的代码中,我们通过`this.$route.params.id`获取路由参数中的ID,并根据不同的ID设置不同的标题。然后,使用`v-if`和`v-else-if`指令根据不同的标题展示不同的内容。
这样,当点击列表中的某一行时,会携带所点击行的ID跳转到详情页面,并根据标题展示不同的内容。
阅读全文