当前位置:首页 > VUE

vue实现简易todolist

2026-02-19 07:30:37VUE

vue实现简易todolist

实现简易TodoList的步骤

创建Vue项目

使用Vue CLI创建一个新项目,运行以下命令:

vue create todo-list
cd todo-list
npm run serve

组件结构设计

src/components目录下创建TodoList.vue文件,作为主组件。

模板部分代码

<template>
  <div class="todo-list">
    <h1>Todo List</h1>
    <input v-model="newTodo" @keyup.enter="addTodo" placeholder="Add new todo">
    <ul>
      <li v-for="(todo, index) in todos" :key="index">
        <span :class="{ completed: todo.completed }" @click="toggleTodo(index)">
          {{ todo.text }}
        </span>
        <button @click="removeTodo(index)">×</button>
      </li>
    </ul>
  </div>
</template>

脚本部分代码

<script>
export default {
  data() {
    return {
      newTodo: '',
      todos: []
    }
  },
  methods: {
    addTodo() {
      if (this.newTodo.trim()) {
        this.todos.push({
          text: this.newTodo,
          completed: false
        })
        this.newTodo = ''
      }
    },
    toggleTodo(index) {
      this.todos[index].completed = !this.todos[index].completed
    },
    removeTodo(index) {
      this.todos.splice(index, 1)
    }
  }
}
</script>

样式部分代码

<style>
.todo-list {
  max-width: 400px;
  margin: 0 auto;
  padding: 20px;
}
.completed {
  text-decoration: line-through;
  color: #888;
}
ul {
  list-style: none;
  padding: 0;
}
li {
  display: flex;
  justify-content: space-between;
  padding: 8px;
  border-bottom: 1px solid #eee;
}
button {
  background: none;
  border: none;
  color: red;
  cursor: pointer;
}
</style>

功能说明

  • 输入框绑定v-model实现双向数据绑定
  • @keyup.enter监听回车事件添加新任务
  • v-for循环渲染任务列表
  • toggleTodo方法切换任务完成状态
  • removeTodo方法删除指定任务

进阶优化建议

  1. 添加本地存储功能,使用localStorage持久化数据
  2. 增加任务分类功能,如"全部"、"已完成"、"未完成"筛选
  3. 添加任务编辑功能,双击任务可修改内容
  4. 引入动画效果提升用户体验

这个简易TodoList实现了基本的新增、状态切换和删除功能,可以作为Vue入门练习项目。

vue实现简易todolist

标签: 简易vue
分享给朋友:

相关文章

vue tab实现

vue tab实现

Vue Tab 实现方法 使用动态组件实现 Tab 在 Vue 中可以通过动态组件 <component :is="currentTab"> 结合 v-for 和 v-bind 实现 Ta…

vue实现selectable

vue实现selectable

Vue 实现可选择的 Select 组件 在 Vue 中实现一个可选择的 Select 组件,可以通过以下几种方式: 使用原生 HTML select 元素 <template>…

vue 实现流程

vue 实现流程

Vue 实现流程 Vue.js 是一个渐进式 JavaScript 框架,用于构建用户界面。以下是 Vue 实现的基本流程: 安装 Vue.js 通过 CDN 引入或使用 npm/yarn 安装:…

vue实现api

vue实现api

Vue 实现 API 调用 在 Vue 中调用 API 通常涉及使用 axios 或 fetch 发送 HTTP 请求,并结合 Vue 的响应式特性管理数据。以下是常见的实现方式: 安装 axios…

vue 实现跳转

vue 实现跳转

Vue 实现页面跳转的方法 在 Vue 中实现页面跳转通常可以通过以下几种方式实现,具体选择取决于项目需求和技术栈(如是否使用 Vue Router)。 使用 Vue Router 进行编程式导航…

vue 实现折叠

vue 实现折叠

Vue 实现折叠功能的方法 在 Vue 中实现折叠功能可以通过多种方式完成,以下是几种常见的实现方法: 使用 v-if 或 v-show 控制显示隐藏 通过绑定一个布尔值变量,结合 v-if 或…