当前位置:首页 > 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>

功能扩展建议

vue实现简易todolist

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

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

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

相关文章

vue实现一个tab栏

vue实现一个tab栏

Vue 实现 Tab 栏 基础实现(选项式 API) <template> <div class="tab-container"> <div class="t…

vue实现alert

vue实现alert

实现自定义 Alert 组件 在 Vue 中可以通过组件化方式实现自定义 Alert 弹窗。以下是基于 Vue 3 的实现示例: 组件代码 (Alert.vue) <template>…

vue observer实现

vue observer实现

Vue Observer 实现原理 Vue 的响应式系统核心是通过 Object.defineProperty(Vue 2)或 Proxy(Vue 3)实现的 Observer 模式。以下是关键实现细…

vue滚动实现

vue滚动实现

Vue 滚动实现方法 使用原生滚动 在 Vue 中可以通过 ref 获取 DOM 元素,调用原生滚动方法实现滚动效果。适用于简单场景。 <template> <div ref=…

vue实现监听

vue实现监听

监听数据变化 在Vue中,可以通过watch选项或$watch方法监听数据的变化。watch适用于组件选项内声明式监听,$watch适用于动态监听。 // 选项式API export default…

vue实现多线程

vue实现多线程

Vue.js 本身是单线程框架,但可以通过以下方法实现类似多线程的效果或利用浏览器多线程能力: 使用 Web Worker Web Worker 是浏览器提供的多线程 API,适合处理 CPU 密集…