个人技术博客——Vue 3 + Element UI 实现活动审核

052205124林宇 2024-12-20 21:05:47
这个作业属于哪个课程2024软件工程实践W班
这个作业要求在哪里软件工程实践总结&个人技术博客
这个作业的目标课程个人技术总结
其他参考文献《构建之法》、vue3.0项目实战 - ElementUI框架版

目录

  • 一、技术概述
  • 1.描述
  • 2.学习该技术原因
  • 3.难点
  • 二、技术详述
  • 1.vue3、 Element-UI 的安装与引入
  • 2. 表格组件实现
  • 3. 动态事件绑定
  • 4. 数据的响应式管理
  • 三、技术使用中遇到的问题和解决过程
  • 问题1:表格列宽不一致
  • 问题2:长文本展示不友好
  • 问题3:数据更新后页面未刷新
  • 四、总结
  • 五、参考文献、参考博客

一、技术概述

1.描述

在前端开发中,表格组件是管理后台界面中必不可少的一部分,用于展示和操作数据。而Vue 3 框架提供了更高效的响应式能力,结合 Element UI,可以快速构建功能强大的表格界面。本项目的活动审核界面使用了 Vue 3 的 ref 进行数据管理,结合 Element UI 的表格组件实现了活动信息的展示和动态操作。

2.学习该技术原因

其开发效率高且符合团队的技术栈需求。

3.难点

如何通过 Vue 3 的 ref 机制实现数据响应式,结合 Element UI 的表格操作逻辑,同时优化代码的可读性和性能。

二、技术详述

1.vue3、 Element-UI 的安装与引入

a.安装 Vue 3 项目
使用 Vue CLI 初始化一个 Vue 3 项目

npm install -g @vue/cli
vue create my-project

b.安装 Element Plus
进入项目根目录后,安装 Element Plus:

npm install element-plus --save

c.引入 Element Plus
在 main.js 文件中引入 Element Plus。

import { createApp } from 'vue'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
import App from './App.vue'
 
const app = createApp(App)
 
app.use(ElementPlus)
app.mount('#app')

2. 表格组件实现

使用 Element UI 提供的 和 组件,可以快速实现表格的基础布局。
核心代码:

<el-table :data="activities" style="width: 100%" stripe border>
  <!-- 定义表格列 -->
  <el-table-column prop="name" label="活动名称" width="180"></el-table-column>
  <el-table-column prop="organizer" label="发起人" width="120"></el-table-column>
  <el-table-column label="活动时间" width="220">
    <template #default="{ row }">
      {{ row.startDate }} - {{ row.endDate }}
    </template>
  </el-table-column>
</el-table>

解释:

  • data="activities":绑定数据源。
  • prop:指定列与数据字段的映射关系。
  • 使用插槽(<template #default>)自定义时间列格式。

3. 动态事件绑定

通过按钮操作实现活动的审核功能(通过/拒绝)。每个操作按钮绑定了一个事件方法,接收活动 ID。
核心代码:

<template #default="{ row }">
  <el-button type="success" size="small" @click="approveActivity(row.id)">通过</el-button>
  <el-button type="danger" size="small" @click="rejectActivity(row.id)">拒绝</el-button>
</template>

解释:

  • 使用 @click 为按钮绑定方法,将每行的活动 ID 传递给相应的方法。

4. 数据的响应式管理

使用 Vue 3 的 ref 管理活动数据,使数据具有响应式更新的能力。

import { ref } from 'vue';

const activities = ref([
  { id: 1, name: '活动1', startDate: '2024-11-30', endDate: '2024-12-08', location: '新疆', description: '描述1' },
  // 其他活动数据
]);

三、技术使用中遇到的问题和解决过程

问题1:表格列宽不一致

描述:<el-table> 的列宽分配不均,部分列内容超出边界显示。
解决方法:
1.明确为每个 设置 width 属性,避免自动计算。
2.设置表格的样式属性 style="table-layout: fixed",确保表格布局更紧凑。

问题2:长文本展示不友好

描述:活动简介字段过长,导致表格排版混乱。
解决方法: 使用 Element UI 的 提供鼠标悬浮查看完整文本的功能。

<el-tooltip effect="dark" :content="row.description" placement="top">
  <span>{{ row.description.slice(0, 20) }}...</span>
</el-tooltip>

问题3:数据更新后页面未刷新

描述:活动数据更新后,表格未即时反映变化。
解决方法: 确保使用 Vue 3 的响应式数据管理工具 ref,并直接操作 ref 的值,而非替换整个数组。

const approveActivity = (id) => {
  const activity = activities.value.find((a) => a.id === id);
  if (activity) {
    activity.status = '通过';
  }
};

四、总结

在 Vue 3 + Element UI 的开发过程中,通过合理使用组件与响应式管理机制,可以快速构建高效、美观的前端界面。遇到问题时,需从组件文档、浏览器调试、社区解决方案等多方面排查问题来源并优化代码。通过这次实践,熟悉了表格组件的高级用法,为日后的复杂场景开发打下基础。

五、参考文献、参考博客

...全文
17 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

240

社区成员

发帖
与我相关
我的任务
社区管理员
  • FZU_SE_teacherW
  • 助教赖晋松
  • D's Honey
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧