当前位置:首页 > VUE

用vue实现todolist

2026-03-10 08:02:37VUE

使用 Vue 实现 TodoList

以下是基于 Vue 3 的 Composition API 实现一个简单 TodoList 的完整代码示例。

创建 Vue 项目

通过 Vue CLI 或 Vite 创建一个新项目:

用vue实现todolist

npm create vue@latest todolist
cd todolist
npm install

实现 TodoList 组件

src/components 目录下创建 TodoList.vue 文件:

用vue实现todolist

<template>
  <div class="todo-app">
    <h1>Todo List</h1>
    <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 setup>
import { ref } from 'vue';

const newTodo = ref('');
const todos = ref([]);

const addTodo = () => {
  if (newTodo.value.trim() === '') return;
  todos.value.push({
    text: newTodo.value,
    completed: false
  });
  newTodo.value = '';
};

const toggleTodo = (index) => {
  todos.value[index].completed = !todos.value[index].completed;
};

const removeTodo = (index) => {
  todos.value.splice(index, 1);
};
</script>

<style>
.completed {
  text-decoration: line-through;
  color: #888;
}
.todo-app {
  max-width: 400px;
  margin: 0 auto;
  padding: 20px;
}
ul {
  list-style: none;
  padding: 0;
}
li {
  display: flex;
  align-items: center;
  margin: 10px 0;
}
button {
  margin-left: 10px;
}
</style>

在 App.vue 中使用组件

修改 src/App.vue 文件:

<template>
  <TodoList />
</template>

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

运行项目

启动开发服务器:

npm run dev

功能说明

  • 添加任务:在输入框中输入内容后按回车键
  • 标记完成:点击 "Toggle" 按钮切换任务完成状态
  • 删除任务:点击 "Remove" 按钮删除任务
  • 样式:已完成的任务会显示删除线和灰色文字

进阶改进建议

  1. 使用 Pinia 进行状态管理,实现多组件共享状态
  2. 添加本地存储功能,持久化保存任务数据
  3. 增加任务分类、优先级等功能
  4. 实现拖拽排序功能
  5. 添加动画效果提升用户体验

这个实现展示了 Vue 3 的基本用法,包括响应式数据、事件处理和条件样式绑定。可以根据需要进一步扩展功能。

标签: vuetodolist
分享给朋友:

相关文章

vue按钮实现截屏

vue按钮实现截屏

Vue 按钮实现截屏的方法 在 Vue 项目中实现截屏功能可以通过多种方式完成,以下是几种常见的方法: 使用 html2canvas 库 安装 html2canvas 库: npm ins…

vue实现ai

vue实现ai

Vue 实现 AI 功能 Vue.js 可以通过集成第三方 AI 服务或本地 AI 模型来实现 AI 功能。以下是几种常见的方法: 集成第三方 AI API 使用 Vue 调用如 OpenAI、Go…

vue实现签章

vue实现签章

Vue 实现签章功能 签章功能通常包括手写签名、电子印章等。以下是基于 Vue 的实现方法: 使用 canvas 实现手写签名 安装依赖(如需要): npm install signature_p…

vue实现radio

vue实现radio

Vue 实现 Radio 按钮 在 Vue 中实现 Radio 按钮可以通过 v-model 进行数据绑定,结合 input 元素的 type="radio" 属性。以下是一个基本示例: <t…

实现vue cli

实现vue cli

安装 Vue CLI 确保系统中已安装 Node.js(版本建议 12.x 或更高)。通过 npm 全局安装 Vue CLI: npm install -g @vue/cli 安装完成后验证版本:…

vue分页实现

vue分页实现

实现Vue分页的几种方法 使用Element UI的分页组件 安装Element UI库后,可以直接使用其分页组件。以下是一个基本示例: <template> <div>…