Vue —— TodoList案例 01

本文通过Vue.js实现一个TodoList应用,详细解析App.vue、TodoHeader.vue、TodoList.vue、TodoItem.vue、TodoFooter.vue及main.js的代码,展示如何在前端构建功能完备的任务管理器。
摘要由CSDN通过智能技术生成
页面展示

在这里插入图片描述

相关Vue代码
记得终端导入 nanoid : npm i nanoid
App.vue
<template>
<div id="app">
    <div class="todo-container">
    <div class="todo-wrap">
      <TodoHeader :add="addTodo" />
      <TodoList :todos="todos" :checkTodo="checkTodo" :deleteTodo="deleteTodo"/>
      <TodoFooter :todos="todos" :checkAllTodo="checkAllTodo" :clearAllTodo="clearAllTodo"/>
    </div>
  </div>
</div>
</template>

<script>
    //引入组件
    import TodoHeader from './components/TodoHeader.vue'
    import TodoFooter from './components/TodoFooter.vue'
    import TodoList from './components/TodoList.vue'


    export default {
    
        name:'App',
        components:{
    TodoHeader,TodoFooter,TodoList},


        data(){
    
          return{
    
            todos:[
              {
    id:'001',title:'抽烟',done:true},
              {
    id:'002',title:'喝酒',done:false},
              {
    id:'003',title:'打架',done:true},
              {
    id:'004',title:'爱国',done:false}
            ]
          }
        },


        methods:{
    
          //添加一个todo
          addTodo(todoObj){
    
              this.todos.unshift(todoObj)
          },
          //勾选or取消勾选一个todo
          checkTodo(id){
    
            this.todos.forEach((todo)=>{
    
              //函数体
              if(todo.id === id) todo.done = !todo.done
            })
          },
          //删除一个todo
          deleteTodo(id){
    
            //过滤不会改变原对象,所以要重新赋值
            this.todos = this.todos.filter((todo)=>{
    
              return todo.id !== id 
            })
          },
          //全选 or 全不选
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值