一个基于 Vue.js 实现的简单增删改查(CRUD)案例

以下是一个基于 Vue.js 实现的简单增删改查(CRUD)案例,使用了 Vue CLI 创建项目,并假设你已经安装了 Vue CLI。这个案例将展示如何创建一个简单的待办事项列表(Todo List),实现添加、删除、编辑和查询功能。

步骤一:创建 Vue 项目

bash 复制代码
vue create todo-app
cd todo-app

步骤二:安装并引入 Element UI(可选,用于提供UI组件)

bash 复制代码
vue add element

步骤三:在 src/components 目录下创建 Todo.vue 文件

html 复制代码
<!-- Todo.vue -->
<template>
  <div class="todo-list">
    <el-input v-model="newTodoText" placeholder="请输入新的待办事项" @keyup.enter="addTodo"></el-input>
    <transition-group name="list" tag="p">
      <div v-for="(todo, index) in todos" :key="todo.id" :class="{ completed: todo.completed }">
        <span>{{ todo.text }}</span>
        <el-button size="mini" @click="toggleTodo(todo)">完成</el-button>
        <el-button size="mini" @click="editTodo(todo, index)">编辑</el-button>
        <el-button size="mini" type="danger" @click="removeTodo(index)">删除</el-button>
      </div>
    </transition-group>
  </div>
</template>

<script>
export default {
  data() {
    return {
      newTodoText: '',
      todos: [
        // 初始化一些示例数据(可选)
        { id: 1, text: '学习Vue', completed: false },
        { id: 2, text: '练习CRUD', completed: true }
      ]
    };
  },
  methods: {
    addTodo() {
      if (this.newTodoText.trim()) {
        this.todos.push({
          id: Date.now(),
          text: this.newTodoText,
          completed: false
        });
        this.newTodoText = '';
      }
    },
    toggleTodo(todo) {
      todo.completed = !todo.completed;
    },
    editTodo(todo, index) {
      // 这里仅作示例,实际应用中可以弹出编辑框或使用v-model动态更新文本
      console.log('Edit:', todo, index);
    },
    removeTodo(index) {
      this.todos.splice(index, 1);
    }
  }
};
</script>

<style scoped>
.todo-list {
  margin-bottom: 20px;
}

.completed {
  text-decoration: line-through;
}
</style>

步骤四:在 src/App.vue 中引入并使用 Todo 组件

html 复制代码
<!-- App.vue -->
<template>
  <div id="app">
    <Todo></Todo>
  </div>
</template>

<script>
import Todo from '@/components/Todo.vue';

export default {
  components: {
    Todo
  }
};
</script>

现在运行项目:

bash 复制代码
npm run serve

打开浏览器访问 http://localhost:8080,你应该能看到一个简单的待办事项列表,可以添加、删除、标记完成和编辑(此处仅打印编辑信息到控制台)待办事项。

注意:本示例使用了 Element UI 提供的 UI 组件,如果你没有安装 Element UI,可以使用原生 HTML 元素和 CSS 类替换,如使用 <input> 替换 <el-input>,使用 <button> 替换 <el-button>,并相应地调整样式和事件绑定。

相关推荐
Tongsr14 分钟前
别只混淆代码:用 Kaleido 加固整个 Android Release AAB
前端·算法·github
郭邯19 分钟前
从零到一:我用 AI 写了一个贷款计算器,顺便把等额本息公式彻底搞懂了
前端
汉堡大王952724 分钟前
面试官:讲讲归并排序 —— 为什么它能在面试里反复出现?
前端·javascript·面试
kyriewen30 分钟前
别再只给人写页面了:AI 已经开始自己点你的按钮、填你的表单
前端·javascript·人工智能
天天喝旺仔33 分钟前
Vue 3 组合式 API:从 Options 迁移到 script setup
前端·javascript·vue.js
知了清语35 分钟前
以测试为盾,重构为矛——老旧前端系统迭代中的“测试先行”实践总结
前端
攀小黑1 小时前
vue3+Web Speech API 封装了一个弹窗语音输入
前端·macos·xcode
roamingcode1 小时前
4.5 小时,从一句话需求到可安装的 Chrome 插件:一次 AI 结对开发的完整复盘
前端·人工智能·chrome·claude·codex
meilindehuzi_a1 小时前
LangChain.js 对话 Memory 实战:History 持久化、截断与摘要压缩
java·javascript·langchain
江畔柳前堤2 小时前
具身智能全景深度指南(2026年9月版):从“会聊天的AI“到“能干活的机器“
大数据·javascript·图像处理·人工智能·分布式·智慧城市·原型模式