当前位置:首页 > VUE

vue实现简易todolist

2026-01-18 15:07:37VUE

实现简易TodoList的步骤

创建Vue项目
使用Vue CLI或Vite快速初始化一个Vue项目。例如通过Vite创建:

npm create vite@latest vue-todolist --template vue

组件结构设计
新建TodoList.vue作为主组件,包含输入框、任务列表和状态展示区域。

数据定义与双向绑定
<script setup>中定义响应式数据和方法:

<script setup>
import { ref } from 'vue'
const tasks = ref([])
const newTask = ref('')
const addTask = () => {
  if (newTask.value.trim()) {
    tasks.value.push({ text: newTask.value, completed: false })
    newTask.value = ''
  }
}
const toggleComplete = (index) => {
  tasks.value[index].completed = !tasks.value[index].completed
}
</script>

模板渲染
<template>中实现交互界面:

<template>
  <div class="todo-container">
    <input 
      v-model="newTask" 
      @keyup.enter="addTask" 
      placeholder="输入任务内容"
    >
    <button @click="addTask">添加</button>

    <ul>
      <li v-for="(task, index) in tasks" :key="index">
        <input 
          type="checkbox" 
          v-model="task.completed"
          @change="toggleComplete(index)"
        >
        <span :class="{ completed: task.completed }">
          {{ task.text }}
        </span>
      </li>
    </ul>

    <p>总任务: {{ tasks.length }} | 已完成: {{ completedCount }}</p>
  </div>
</template>

计算属性
添加已完成任务的统计功能:

<script setup>
// ...原有代码
import { computed } from 'vue'

const completedCount = computed(() => {
  return tasks.value.filter(t => t.completed).length
})
</script>

样式优化
添加基础样式增强视觉效果:

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

功能扩展建议

  • 添加本地存储功能使用localStorage持久化数据
  • 实现任务删除功能
  • 增加任务分类过滤(全部/进行中/已完成)
  • 添加动画过渡效果

完整组件应包含数据管理、用户交互和状态展示三部分,通过Vue的响应式系统实现数据与视图的自动同步。

vue实现简易todolist

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

相关文章

vue 指令实现

vue 指令实现

Vue 指令实现 Vue 指令是 Vue.js 提供的特殊属性,用于在 DOM 元素上添加特殊行为。指令以 v- 前缀开头,例如 v-model、v-if、v-for 等。以下是实现自定义指令和常用内…

vue实现socket

vue实现socket

Vue 中实现 WebSocket 通信 在 Vue 项目中实现 WebSocket 通信可以通过原生 WebSocket API 或第三方库(如 socket.io-client)完成。以下是两种常…

vue实现driver

vue实现driver

Vue 实现 Driver.js 引导功能 Driver.js 是一个轻量级的 JavaScript 库,用于在网页上创建引导式导览。以下是在 Vue 项目中集成 Driver.js 的详细方法:…

vue实现上传

vue实现上传

Vue 文件上传实现方法 使用 Vue 实现文件上传可以通过原生 HTML5 的 <input type="file"> 元素结合 Vue 的事件处理和数据绑定来实现。 基础实现步骤…

vue实现定时

vue实现定时

Vue 实现定时功能的方法 使用 setInterval 和 clearInterval 在 Vue 中可以通过 setInterval 和 clearInterval 实现定时功能。在组件的 mou…

vue实现选择

vue实现选择

Vue 实现选择功能的方法 在 Vue 中实现选择功能可以通过多种方式完成,以下介绍几种常见的实现方法。 使用 v-model 绑定单选 通过 v-model 可以轻松实现单选功能。以下是一个简单…