Vue.js 任务管理应用程序:构建交互式任务列表

应用场景介绍

任务管理应用程序是管理任务、跟踪进度和组织工作流程的宝贵工具。本教程将指导您使用 Vue.js 构建一个交互式任务列表,让您轻松管理和跟踪您的任务。

代码基本功能介绍

此任务管理应用程序提供以下功能:

  • **创建任务:**添加新任务到列表中。
  • **编辑任务:**修改任务的标题、状态和到期日期。
  • **删除任务:**从列表中删除已完成或不再需要任务。
  • **搜索任务:**使用搜索栏快速查找特定任务。
  • **过滤任务:**按状态或到期日期过滤任务,以专注于特定任务组。

功能实现步骤及关键代码分析说明

1. 设置 Vue 实例

首先,创建一个 Vue 实例,并定义一个包含任务数据的响应式数组:

import { ref } from "vue";

const tasks = ref([
  // 任务数据对象数组
]);

2. 创建任务列表模板

接下来,创建任务列表的 HTML 模板。此模板使用 Vue 的 v-for 指令来迭代任务数组并渲染每个任务:

<div v-for="task in tasks" :key="task.id" class="rounded-lg border border-gray-300 p-4">
  <!-- 任务详情 -->
</div>

3. 添加任务表单

要添加新任务,添加一个表单,其中包含一个输入字段和一个提交按钮:

<div class="flex items-center space-x-4">
  <button @click="addTask" class="rounded-lg border border-blue-500 bg-blue-500 px-4 py-2 text-white">
    Add Task
  </button>
</div>

在 Vue 实例中,定义一个 addTask 方法来处理表单提交并创建新任务:

methods: {
  addTask() {
    // 创建一个新任务对象
    const newTask = {
      id: Date.now(), // 使用时间戳作为唯一 ID
      title: "", // 初始标题为空
      status: "In Progress", // 默认状态为“进行中”
      dueDate: null, // 初始到期日期为空
      description: "", // 初始描述为空
    };

    // 将新任务添加到任务数组
    tasks.value.push(newTask);
  },
},

4. 实现搜索功能

使用 Vue 的 v-model 指令将搜索输入字段与 Vue 实例中的数据绑定:

<input type="text" v-model="searchQuery" class="rounded-lg border border-gray-300 p-2 focus:outline-none focus:border-blue-500" placeholder="Search" />

在 Vue 实例中,定义一个 computed 属性来过滤任务列表并返回与搜索查询匹配的任务:

computed: {
  filteredTasks() {
    if (!this.searchQuery) {
      return tasks.value;
    }

    return tasks.value.filter((task) => task.title.toLowerCase().includes(this.searchQuery.toLowerCase()));
  },
},

5. 实现任务状态过滤

使用 Vue 的 v-if 指令根据任务状态显示或隐藏任务:

<div v-if="task.status === 'Completed'" class="rounded-full bg-green-500 px-2 py-1 text-white text-xs">
  {{ task.status }}
</div>

6. 实现到期日期过滤

使用 Vue 的 v-if 指令根据到期日期显示或隐藏任务:

<div v-if="task.dueDate < today" class="rounded-full bg-red-500 px-2 py-1 text-white text-xs">
  Overdue
</div>

总结与展望

开发这段代码的过程巩固了我对 Vue.js 的理解,让我对 Vue 的响应式系统、数据绑定和组件化方法有了更深入的认识。

未来,可以考虑扩展此任务管理应用程序的功能,包括:

  • **拖放功能:**允许用户通过拖放操作重新排列任务。
  • **优先级设置:**为任务分配优先级,以便用户可以优先处理重要任务。
  • **评论和附件:**允许用户在任务上添加评论和附件,以促进协作和信息共享。
Login
ECHO recommendation
ScriptEcho.ai

User Annotations

任务管理与提醒