当前位置:首页 > VUE

web用vue实现todolist

2026-01-21 04:44:19VUE

使用 Vue 实现 TodoList

创建 Vue 项目

确保已安装 Node.js 和 Vue CLI,通过以下命令创建新项目:

vue create todo-list

选择默认配置或手动配置,完成后进入项目目录:

cd todo-list

项目结构

主要文件结构如下:

web用vue实现todolist

  • src/App.vue:主组件
  • src/components/TodoList.vue:TodoList 组件
  • src/assets:静态资源

实现 TodoList 组件

src/components/TodoList.vue 中编写核心逻辑:

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

<script>
export default {
  data() {
    return {
      newTodo: '',
      todos: []
    }
  },
  methods: {
    addTodo() {
      if (this.newTodo.trim() === '') return
      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>
.completed {
  text-decoration: line-through;
  color: gray;
}
</style>

集成到主组件

修改 src/App.vue 引入 TodoList 组件:

web用vue实现todolist

<template>
  <div id="app">
    <TodoList />
  </div>
</template>

<script>
import TodoList from './components/TodoList.vue'

export default {
  components: {
    TodoList
  }
}
</script>

运行项目

启动开发服务器:

npm run serve

访问 http://localhost:8080 查看效果。

功能扩展建议

  • 使用 localStorage 持久化存储任务
  • 添加任务分类或标签功能
  • 实现拖拽排序任务
  • 添加任务完成时间记录

标签: webvue
分享给朋友:

相关文章

vue实现展开与收起

vue实现展开与收起

Vue 实现展开与收起功能 在 Vue 中实现展开与收起功能可以通过多种方式完成,以下是一些常见的方法: 使用 v-show 或 v-if 控制显示 通过 Vue 的指令 v-show 或 v-if…

vue异步组建实现原理

vue异步组建实现原理

Vue 异步组件实现原理 Vue 的异步组件允许将组件按需加载,通常用于代码分割或延迟加载非关键组件。其核心原理基于 Promise 和动态导入。 基本实现方式 通过 defineAsyncCom…

vue实现微博发布动态

vue实现微博发布动态

使用Vue实现微博发布动态功能 创建Vue组件结构 新建一个WeiboPost.vue组件,包含文本框、图片上传和发布按钮: <template> <div class="we…

vue实现a

vue实现a

Vue 实现 A 功能的方法 在 Vue 中实现 A 功能可以通过多种方式,具体取决于 A 功能的具体需求。以下是几种常见的实现方法: 使用 Vue 组件 通过创建自定义组件来实现 A 功能。组件可…

vue 实现复选

vue 实现复选

Vue 实现复选功能 在 Vue 中实现复选功能可以通过多种方式完成,以下是常见的几种方法: 使用 v-model 绑定数组 通过 v-model 绑定一个数组,可以自动收集用户选择的复选框值。…

vue实现div

vue实现div

Vue 实现 DIV 元素的方法 在 Vue 中实现 DIV 元素可以通过多种方式,以下是几种常见的实现方法: 使用模板语法 在 Vue 的模板中直接使用 HTML 的 <div> 标签…