12-使用vue2实现todolist待办事项

news2024/11/24 0:08:11

个人名片:
😊作者简介:一名大二在校生
🤡 个人主页:坠入暮云间x
🐼
座右铭:懒惰受到的惩罚不仅仅是自己的失败,还有别人的成功。
🎅**学习目标: 坚持每一次的学习打卡

文章目录

    • 案例
    • 实现功能
    • 引入vue2.js
      • 1.添加待办事项
      • 2.删除功能
      • 3.统计完成事项和剩余事项
      • 4.点击全部、待完成、已完成会进行显示跳转

今天的学习任务是使用vue2实现todolist待办事项

案例

一个简单的todolist待办事项如下显示:在这里插入图片描述

实现功能

  1. 添加待办事项
  2. 删除清单
  3. 选中事项会有删除效果
  4. 统计完成和剩余事项
  5. 点击全部、待完成、已完成会进行显示跳转
  6. 页面样式可以自行设计

引入vue2.js

一定不要忘记引用vue2.js

<script src="vue2.js"></script>

1.添加待办事项

 <div class="container">
      <h1>小鑫的待办事项清单</h1>
      <!--      v-model实现数据双向绑定-->
      <input type="text" class="inp" v-model="content" @keyup.enter="addList" placeholder="请输入待办事项">
      <!--   绑定点击实现实现添加待办事项  -->
      <button @click="addList">添加待办事项</button>
      <script>
const app = new Vue({
  el: '#app',
  data: {
      //存储数据
        todoList:[
            {
            id:1,
            content:"上课",
            state:false
        },
            {
                id:2,
                content:"study",
                state:false
            },
            {
                id:3,
                content:'睡觉',
                state:false
            },
            {
                id:4,
                content: '吃饭',
                state:false
            }
        ],
      content:'',
        newTodo:'',//双向绑定数据
        ckList:[],//绑定复选框存放数据
      mode:'all',//all ,active, completed
      editingItem:null,//当前编辑
  },
    methods: {
      //添加待办事项
        addList(){
            this.todoList.push({
                id:this.todoList.length+1,
                content:this.content,
                state:false,
            });
            this.newTodo='';

        },
        </script>

1.v-model="content"实现数据双向绑定,就可以将数据添加到里面
2.按钮事件:@keyup.enter="addList" 输入内容的时候,点击enter可以添加
3. @click="addList" 使用点击事件绑定button按钮,点击按钮将会将输入的内容添加到事项中

效果如下显示:
在这里插入图片描述

2.删除功能

<!--      todolist数据源-->
    <table >
        <tr v-for="(item,index) in showData" :key="item.id">
            <td>{{item.id}}.</td>
            <button @click="delList">删除</button>
            <td>
             <!-- 复选框 -->
                <input type="checkbox" v-model="item.state" >
                <span :class="item.state===true ? 'checked' : ''"> {{item.content}}</span>
            </td>
        </tr>

    </table>

写在method中

 //删除待办事项
        delList(index){
            this.todoList.splice(index,1);
        },
          ChangeMode(mode){
            this.mode=mode;
        },

复选框选中时将会出现删除线,颜色变灰

  .checked {
            color: #d9d9d9;
            text-decoration: line-through;
        }

1.使用v-for 遍历showData,将数据渲染到页面上
2. @click="delList" 按钮绑定点击事件在method中实现,点击删除按钮将会删除事项
3.复选框选中时将会出现删除线,颜色变灰

代码显示如下
在这里插入图片描述在这里插入图片描述将所有内容删除后将会出现待办事项为空
<div v-show="todoList.length===0">待办事项为空 </div>
在这里插入图片描述

3.统计完成事项和剩余事项

<p>共有{{total}}项,还剩{{unCompleteList}}项未完成 </p>

统计总和一般使用computed计算属性来完成

 computed: {
     // 总计个数
        total(){
            let totalList=0;
            this.todoList.forEach((item)=>{
                if(item.id) {
                    totalList++;
                }
            })
            return totalList;
        },
         //未完成任务个数
        unCompleteList(){
            let remain=0;
            this.todoList.forEach((item)=>{
                if(item.state === false){
                    remain++;
                }
            })
            return remain;
        }
        }

在这里插入图片描述

4.点击全部、待完成、已完成会进行显示跳转

   <div class="footer" v-show="todoList.length>0">
      <p>共有{{total}}项,还剩{{unCompleteList}}项未完成 </p>
<!--          //显示数据-->
          <button @click="ChangeMode('all')">全部</button>
          <button  @click="ChangeMode('active')">待完成</button>
          <button  @click="ChangeMode('completed')">已完成</button>
      </div>
 ChangeMode(mode){
            this.mode=mode;
        },
  //显示模式筛选当前视图下的数据
        showData(){
            if(this.mode==='all'){
                return this.todoList;
            }else if(this.mode==='active'){
                return this.todoList.filter(item=>!item.state)
            }else{
                return this.todoList.filter(item=>item.state)
            }
        },

代码显示如下
点击按钮便可以进行切换
待完成事项
在这里插入图片描述
已完成事项
在这里插入图片描述
全部内容
在这里插入图片描述

1.使用v-show切换显示和隐藏todolist中的内容
在进行判断,点击全部按钮显示全部事项,点击其他按钮时,使用filter进行过滤,并返回该内容。

以上便是此次todolist实现的所有内容了,有不对的地方欢迎大家指正,这个小案例适合初学vue的同学进行学习。
如果需要源码,可私信我

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1212703.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Java】若依的使用代码生成及字典的使用

一、导言 1、介绍 若依管理系统是一款基于Java语言开发的开源管理系统。它采用了Spring Boot框架&#xff0c;使得开发更加快速和高效。同时&#xff0c;它还集成了MyBatis Plus&#xff0c;进一步简化了数据库操作。若依管理系统的界面简洁美观&#xff0c;且支持多语言&#…

M系列 Mac使用Homebrew下载配置git和连接GitHub

一、首先我们需要安装Homebrew M系列 Mac安装配置Homebrewhttps://blog.csdn.net/W_Fe5/article/details/134428377?spm1001.2014.3001.5501 二、下载git 1、终端输入一下命令 brew install git 2、这时下载完成 二、配置git 1、创建用户名和邮箱 这里以我自己的邮箱举例…

Unity中Shader矩阵的行列式

文章目录 前言一、什么是矩阵的行列式&#xff1f;1、只有方阵才有行列式&#xff08;即 n X n 的矩阵&#xff09;2、数学上表示为 det(A) 或者 |A|3、行列式可以看做有向面积 或 体积 在空间中的变化影响 二、2 x 2矩阵的行列式三、3 x 3矩阵的行列式四、行列式计算总结五、使…

【电路笔记】-快速了解无源器件

快速了解无源器件 文章目录 快速了解无源器件1、概述2、电阻器作为无源器件3、电感器作为无源器件4、电容器作为无源器件5、总结 无源器件是电子电路的主要构建模块&#xff0c;没有它们&#xff0c;这些电路要么根本无法工作&#xff0c;要么变得不稳定。 1、概述 那么什么是…

word批量图片导出wps office word 图片批量导出

word批量导出图片教程 背景 今天遇到了一个场景&#xff0c;因为word里的图片打开看太模糊了&#xff0c;如果一个一个导出来太麻烦。想批量将word中的图片全部导出 但是&#xff0c;wps导出的时候需要会员 教程开始&#xff1a; 将word保存为 .docx 格式&#xff0c;可以按F1…

JAVA G1垃圾收集器介绍

为解决CMS算法产生空间碎片和其它一系列的问题缺陷&#xff0c;HotSpot提供了另外一种垃圾回收策略&#xff0c;G1&#xff08;Garbage First&#xff09;算法&#xff0c;通过参数-XX:UseG1GC来启用&#xff0c;该算法在JDK 7u4版本被正式推出&#xff0c;官网对此描述如下&am…

C语言判断闰年(ZZULIOJ1028: I love 闰年!)

题目描述 根据一个年份&#xff0c;判断是否是闰年。 输入&#xff1a;输入为一个整数&#xff0c;表示一个年份。 输出&#xff1a;如果是闰年&#xff0c;输出"Yes"&#xff0c;否则输出"No"。输出单独占一行。 样例输入 Copy 2012 样例输出 Copy Yes 分…

二维码智慧门牌管理系统升级技术解决方案

文章目录 前言一、系统升级背景二、系统升级目标 本次系统升级的主要目标包括三、系统升级方案 为实现上述目标&#xff0c;我们提出了以下升级方案&#xff1a;四、系统升级效果 通过本次升级&#xff0c;二维码智慧门牌管理系统将实现个人待办消息提醒和重要通知消息管理等新…

【数据结构】单链表 | 详细讲解

线性表顺序存储结构的优缺点 顺序表优点 无须为了表示中间的元素之间的逻辑关系而增加额外的存储空间&#xff1b;因为以数组形式存储&#xff0c;可以快速地存取表中任一位置的元素。 顺序表缺点 插入和删除操作需要移动大量元素&#xff0c;时间复杂度为O(N)&#xff1b;…

人均年薪70万!华为项目经理具备了哪些能力

大家好&#xff0c;我是老原。 最近在逛脉脉的时候&#xff0c;看到了一位华为项目经理晒出的月收入&#xff1a;5W&#xff0c;这还是不包含每年分红奖励前的到手薪资。 按他现在的19级别&#xff0c;再加上分红奖励&#xff0c;年薪至少在70W&#xff0c;留言区羡慕声一片。…

高科技电子行业采购供应链管理

随着新一代信息技术的发展&#xff0c;我们迈入了数智化时代&#xff0c;各行各业借助技术的升级&#xff0c;加快自身数字化转型的步伐。高科技电子行业作为技术创新的前沿地带&#xff0c;在智能化的道路上也走在传统行业的前面&#xff0c;这其中包括生产研发的技术创新&…

目标检测—Yolo系列(YOLOv1/2/v3/4/5/x/6/7/8)

目标检测概述 什么是目标检测&#xff1f; 滑动窗口&#xff08;Sliding Window&#xff09; 滑动窗口的效率问题和改进 滑动窗口的效率问题&#xff1a;计算成本很大 改进思路 1&#xff1a;使用启发式算法替换暴力遍历 例如 R-CNN&#xff0c;Fast R-CNN 中使用 Selectiv…

IDEA没有Add Framework Support解决办法

点击File—>Settings 点击第一个设置快捷键 点击apply和ok即可 我们要点击一下项目&#xff0c;再按快捷键ctrlk 即可

数据分析 - 分散性与变异的量度

全距 - 极差 处理变异性 方差度量 数值与均值的距离&#xff0c;也就是数据的差异性 标准差描述&#xff1a;典型值 和 均值的距离的方法&#xff0c;数据与均值的分散情况

Datawhale智能汽车AI挑战赛

1.赛题解析 赛题地址&#xff1a;https://tianchi.aliyun.com/competition/entrance/532155 任务&#xff1a; 输入&#xff1a;元宇宙仿真平台生成的前视摄像头虚拟视频数据&#xff08;8-10秒左右&#xff09;&#xff1b;输出&#xff1a;对视频中的信息进行综合理解&…

计算属性传参的写法,在vue3项目中,

计算属性 | Vue.js 在vue3项目中&#xff0c;使用计算属性&#xff0c;在使用这个计算属性时&#xff0c;要传入参数写法有点怪 computed(函数&#xff09; 函数里面再返回一个函数&#xff0c;这个函数接收参数 注意&#xff1a;最后的结果是&#xff0c;这个计算属性函数并…

2023.11.14 hivesql的容器,数组与映射

目录 https://blog.csdn.net/m0_49956154/article/details/134365327?spm1001.2014.3001.5501https://blog.csdn.net/m0_49956154/article/details/134365327?spm1001.2014.3001.5501 8.hive的复杂类型 9.array类型: 又叫数组类型,存储同类型的单数据的集合 10.struct类型…

Maven介绍及仓库配置

目录 一.Maven 1.介绍 坐标 仓库 1&#xff09;中央仓库 2&#xff09;本地仓库 3&#xff09;私服 配置国内源 配置过程 二.Maven功能 2.项目构建 3.依赖管理 Maven Help插件 安装 ​使用 一.Maven 1.介绍 坐标 唯一的&#xff0c;通过以下代码的三个键值对确…

JWT登录认证(2认证)

备注说明&#xff1a; 用户登录成功后&#xff0c;系统会自动下发JWT令牌&#xff0c;然后在后续的每次请求中&#xff0c;浏览器都需要在请求头header中携带到服务器&#xff0c;请求头的名称为Authorization&#xff0c;值为登录时下发的JWT令牌。 如果检测到用户未登录&…

S32DS踩坑日记五-bootloader跳转APP时触发DefaultISR

S32DS踩坑日记五-bootloader跳转APP时触发DefaultISR bootloader和APP由另一位同事开发过程中&#xff0c;被导师叫回去写论文了。 由于项目不急&#xff0c;接手后未作任何改动&#xff0c;后面硬件工程师手工焊了几块电路版&#xff0c;需要刷上程序测试电路板。然后就遇到了…