Vue中TodoList案例_动画

news2024/11/27 22:21:20

MyItem.vue :  主要是引入了import 'animate.css'样式库,animate.css样式库配置见上一篇文章animate.css样式库,然后再li标签外套了transition标签,引用了name里面的名称是animate.css拿过来的,绑定了enter-active-class和leave-active-classanimate库内自带的绑定样式

<template>
  <!--appear上来就有动画-->
  <transition
        name="animate__animated animate__bounce"
        appear
        enter-active-class="animate__jackInTheBox"
        leave-active-class="animate__zoomOutDown"
    >
      <li>
        <label >
          <input type="checkbox" :checked="todo.done" @change="handleCheck(todo.id)"/> <!--给input指定一个checked选项,如果是true就勾选上,如果是false就不勾选-->
          <span v-show="!todo.isEdit">{{todo.title}}</span>
          <input
              type="text"
              v-show="todo.isEdit"
              :value="todo.title"
              @blur="handleBlur(todo,$event)"
              ref="inputTitle"
          >
        </label>
        <button class="btn btn-danger" @click="handleDelete(todo.id)">删除</button>
        <button class="btn btn-edit" @click="handleEdit(todo)" v-show="!todo.isEdit">编辑</button>
      </li>
    </transition>
</template>

<script>
import 'animate.css'
import pubsub from 'pubsub-js'
export default {
  name: "MyItem",
  //声明接收对象
  props:[
      'todo',
  ],
  methods:{
    //勾选or取消勾选
    handleCheck(id){
      //通知App组件将对应的todo对象的done值取反
      // this.checkTodo(id)
      this.$bus.$emit('checkTodo',id)
    },
    //删除
    handleDelete(id){
        if (confirm('确定删除吗')){  //confirm根据用户的交互来决定到底是布尔值为真还是为假,点击确定为真,点击取消为假
          // this.deleteTodo(id)
            pubsub.publish('deleteTodo',id)
        }
    },
    //编辑
    handleEdit(todo){
      if (todo.hasOwnProperty.call('isEdit')){
        todo.isEdit = true
      }else {
        console.log('a@@')
        this.$set(todo,'isEdit',true)
      }
      // setTimeout(()=>{
      //   this.$refs.inputTitle.focus()
      // },20)
      this.$nextTick(function (){
           this.$refs.inputTitle.focus()
      })
    },
    //失去焦点回调(真正执行修改逻辑)
    handleBlur(todo,e){
      todo.isEdit=false
      if (!e.target.value.trim())return alert('输入不能为空')
      this.$bus.$emit('updateTodo',todo.id,e.target.value)
    }
  }
}
</script>

<style scoped>
li{
  list-style: none;
  height: 36px;
  line-height: 36px;
  padding: 0 5px;
  border-bottom: 1px solid #ddd;
}
li label{
  float:left;
  cursor: pointer;
}

li label li input{
  vertical-align: middle;
  margin-right: 6px;
  position: relative;
  top: -1px;
}

li button{
  float: right;
  display: none;
  margin-top: 3px;
}

li:before{
  content: initial;
}
li:last-child{
  border-bottom: none;
}
li:hover{
  background-color: #ddd;
}
li:hover button{
  display: block;
}
</style>

 

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

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

相关文章

前端实现导出excel表格

需求&#xff1a;实现勾选行导出为表格 一、安装插件 npm install --save file-saver xlsx运行项目报如下警告的话 运行npm install xlsx0.16.0 --save 来降低版本号&#xff08;最初我安装的版本号是0.18.16的版本&#xff09;再次运行项目就不会报如下警告了 二、新建一个ex…

嵌入式开发:单片机嵌入式Linux学习路径

SOC&#xff08;System on a Chip&#xff09;的本质区别在于架构和功能。低端SOC如基于Cortex-M架构的芯片&#xff0c;如STM32和NXP LPC1xxx系列&#xff0c;不具备MMU&#xff08;Memory Management Unit&#xff09;&#xff0c;适用于轻量级实时操作系统如uCOS和FreeRTOS。…

SOC FPGA之HPS模型设计(一)

目录 一、建立HPS硬件系统模型 1.1 GHRD 1.2 从0开始搭建HPS 1.2.1 FPGA Interfaces 1.2.1.1 General 1.2.1.2 AXI Bridge 1.2.1.3 FPGA-to-HPS SDRAM Interface 1.2.1.4 DMA Peripheral Request 1.2.1.5 Interrupts 1.2.1.6 EMAC ptp interface 1.2.2 Peripheral P…

PostMan+Jmeter工具介绍及安装

目录 一、PostMan介绍​编辑 二、下载安装 三、Postman与Jmeter的区别 一、开发语言区别&#xff1a; 二、使用范围区别&#xff1a; 三、使用区别&#xff1a; 四、Jmeter安装 附一个详细的Jmeter按照新手使用教程&#xff0c;感谢作者&#xff0c;亲测有效。 五、Jme…

Linux:Linux的发展史和作用有哪些?

文章目录 Linux是什么&#xff1f;Linux的开源特征为什么要学习Linux&#xff1f;Linux的应用场景有哪些&#xff1f; Linux是什么&#xff1f; 简单来说&#xff0c;Linux就是操作系统&#xff0c;它和Windows等软件一样&#xff0c;都只是操作系统&#xff0c;并无区别 Linu…

linux查看系统版本、内存、CPU等信息

一、查看linux内核版本信息&#xff08;两种方法&#xff09; 1. cat /proc/version linux查看当前操作系统内核版本信息 2. uname -a linux查看当前操作系统内核版本信息 二、查看linux系统版本信息&#xff08;3种方法&#xff09; 1. lsb_release -a 可列出所有版本…

链表踏歌:独具慧眼,雕琢重复元素藏身匿迹

本篇博客会讲解力扣“83. 删除排序链表中的重复元素”的解题思路&#xff0c;这是题目链接。 由于链表是排好序的&#xff0c;我们可以通过遍历一次链表的方式&#xff0c;删除所有重复的结点。具体来说&#xff0c; 如果链表为空&#xff0c;则不需要删除&#xff0c;直接返回…

你能说说“淘宝购物车”怎么测试么?

前言 今天我给大家整理一篇面试高频问到的问题“淘宝购物车”怎么测试。 测试思维 依然附上测试任何事物的测试思路&#xff1a; 第一步&#xff1a;梳理产品的核心业务流程&#xff1a;明白这是个什么项目&#xff0c;实现了什么业务&#xff0c;以及是怎么实现的&#xf…

自动化测试框架unittest与pytest的区别!

引言 前面文章已经介绍了python单元测试框架&#xff0c;大家平时经常使用的是unittest&#xff0c;因为它比较基础&#xff0c;并且可以进行二次开发&#xff0c;如果你的开发水平很高&#xff0c;集成开发自动化测试平台也是可以的。而这篇文章主要讲unittest与pytest的区别&…

感染了后缀为.maloxx勒索病毒如何应对?数据能够恢复吗?

引言&#xff1a; 网络安全威胁不断进化&#xff0c;勒索病毒作为其中一种恶意软件类型&#xff0c;给个人用户和企业带来了严重的数据安全问题。.maloxx勒索病毒&#xff08;maloxx Ransomware&#xff09;是最近出现的一种恶意软件&#xff0c;它能够加密受害者计算机中的数…

建筑设计项目管理系统推荐:哪个最适合您的业务?

建筑设计用什么项目管理系统好&#xff1f;Zoho Projects设计行业一体化解决方案适用于以建筑设计、景观规划、勘探设计、室内设计、灯光设计、幕墙设计、工业设计、品牌设计、平面设计为主要业务的设计公司、广告公司、建筑设计院等设计机构。围绕设计行业的核心业务需求&…

媒体查询做页面的响应式布局@media

媒体查询(media)_花束javascipt的博客-CSDN博客

[JavaScript游戏开发] 绘制冰宫宝藏地图、人物鼠标点击移动、障碍检测

系列文章目录 第一章 2D二维地图绘制、人物移动、障碍检测 第二章 跟随人物二维动态地图绘制、自动寻径、小地图显示(人物红点显示) 第三章 绘制冰宫宝藏地图、人物鼠标点击移动、障碍检测 文章目录 系列文章目录前言一、本章节效果图二、介绍2.1、准备地图素材2.2、封装地图上…

GUI自动化测试进阶:页面对象模式

本文介绍的是页面对象设计模式及其常见的滥用继承的错误。 本文和语言无关&#xff0c;但作者主要使用python和java。本文假设读者已经具有了一定的python或java基础&#xff0c;知道类和方法是什么。 如果完全没有这方面的基础&#xff0c;请看我的《测试人员如何学Python》。…

TPS54620RHLR是一款同步降压转换器

TPS54620RHLR是一款同步降压转换器&#xff0c;通过高效率和集成高压侧和低压侧MOSFET&#xff0c;为小型设计进行了优化。通过电流模式控制实现了进一步的空间节省&#xff0c;从而减少了元件数量&#xff0c;并通过选择高开关频率&#xff0c;减少了电感器的占地面积。输出电…

Redis源码篇 - QuickList数据结构

Quicklist是Redis3.2之后引入的一个双向链表结构&#xff0c;其本质是对ziplist弊端的一个优化数据结构&#xff0c;ziplist是一种连续的内存空间&#xff0c;用于减少碎片化&#xff0c;减少内存占用&#xff0c;但是正是因为需要连续的内存空间&#xff0c;当数量越来越大时&…

023 - group by

GROUP BY语句将具有相同值的行分组到汇总行中 GROUP BY语句通常与聚合函数&#xff08;COUNT&#xff0c;MAX&#xff0c;MIN&#xff0c;SUM&#xff0c;AVG&#xff09;一起使用&#xff0c;将结果集分组为一列或多列。 SQL GROUP BY 语法 SELECT column_name(s) FROM tabl…

antd中的Cascader级联选择框怎么清空重置React

项目场景&#xff1a; React项目&#xff0c;使用antd中的Cascader级联选择框 问题描述&#xff1a; 通过其他按钮无法重置选择框中的项 原因分析&#xff1a;&#xff08;对应解决办法一和二&#xff09; 1、级联选择框的数据默认是根据options绑定的数组中的value值来进行…

Audio Clip

Unity支持的音频格式&#xff1a; aiff/wav&#xff1a;适用于较短声音片段 mp3/OGG:适用于较长的音乐片段 多声道强制转为单声道&#xff0c;减小所占内存。 勾选后会对声音有优化 在后台加载声音 Load Type&#xff1a; 第一个&#xff0c;以不压缩的形式存在内存&#…

idea插件开发-自定义语言02-Lexer

词法分析器或词法分析器定义文件内容如何分解为标记。词法分析器是自定义语言插件几乎所有功能的基础&#xff0c;比如基本语法突出显示到高级代码分析功能。由Lexer来定义。IDE在三个主要上下文中调用词法分析器&#xff0c;插件可以根据需要提供不同的词法分析器实现&#xf…