在vue3项目中添加弹框,弹框中显示三个卡片信息,卡片上的信息需要对接后端接口,展示后端提供的数据,代码怎么写
时间: 2024-09-25 19:10:47 浏览: 43
【vue+leaflet+elementUI】vue项目中在Leaflet弹框Popup中使用elementui组件(三)
在 Vue3 项目中,你可以使用 Element UI 或者 Vant 等前端组件库来快速创建弹框及卡片。这里我会给你一个简化的示例,假设你已经安装了`element-plus`库。
首先,在`main.js`或者其他引入全局CSS的地方导入 Element Plus:
```javascript
import { createApp } from 'vue';
import App from './App.vue';
import ElementPlus from 'element-plus';
// 全局注册Element Plus
createApp(App).use(ElementPlus);
```
然后在你的组件中,比如`CardList.vue`,创建一个弹窗组件并请求后端数据:
```html
<template>
<div>
<el-dialog v-model="dialogVisible" :title="dialogTitle">
<div slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false">关闭</el-button>
</div>
<div v-for="(item, index) in cardData" :key="index">
<el-card :shadow="index === 0 ? 'hover' : ''">
<el-card-header>卡片标题{{ item.title }}</el-card-header>
<el-card-body>
<p>{{ item.content }}</p>
</el-card-body>
</el-card>
</div>
</el-dialog>
<!-- 弹出按钮 -->
<button @click="loadCards">加载卡片</button>
</div>
</template>
<script setup>
import { ref, onMounted } from 'vue';
import axios from 'axios'; // 假设已安装 axios
const dialogTitle = ref('卡片列表');
const dialogVisible = ref(false);
let cardData = ref([]);
async function loadCards() {
try {
const response = await axios.get('/api/cards'); // 替换为你实际的后端接口URL
if (response.data) {
cardData.value = response.data;
dialogVisible.value = true; // 显示弹框
}
} catch (error) {
console.error('获取卡片数据失败', error);
}
}
onMounted(() => {
loadCards(); // 初始加载
});
</script>
```
在这个例子中,当用户点击“加载卡片”按钮时,会向后端发送GET请求获取数据,然后更新`cardData`状态,最后控制弹框的显示。记得替换`/api/cards`为你的实际接口地址,并根据后端返回的数据结构调整渲染逻辑。
阅读全文