12 【nextTick 过渡与动画】

news2024/11/23 11:34:26

1.nextTick

这是一个生命周期钩子

  1. 语法:this.$nextTick(回调函数)
  2. 作用:在下一次 DOM 更新结束后执行其指定的回调。
  3. 什么时候用:当改变数据后,要基于更新后的新DOM进行某些操作时,要在nextTick所指定的回调函数中执行。

比如编辑按钮使文本变成表单且自动获取焦点

点击表单时会用一个布尔值配合v-show使表单显示,可是改变布尔值的时候,后面的focus方法会跟着执行,然后再渲染模板

<template>
  <li>
    <label>
      <input type="checkbox" :checked="todo.done" >
      <span v-show="!todo.isEdit">{{ todo.title }}</span>
      <input type="text" v-show="todo.isEdit" 				          
             :value="todo.title"ref="inputTitle"/>
    </label>
    <button v-show="!todo.isEdit" class="btn btn-edit" @click="handleEdit(todo)">
      编辑
    </button>
  </li>
</template>

<script>
export default {
  name: "MyItem",
  
  props: ["todo"],	// 声明接收todo
  methods: {
    handleEdit(todo) {	// 编辑
      if (todo.hasOwnProperty("isEdit")) {
        todo.isEdit = true;
      } else {
        this.$set(todo, "isEdit", true);
      }
      this.$nextTick(function () {
        this.$refs.inputTitle.focus();
      });
    },
  },
};
</script>

2.过渡与动画

2.1 基本介绍

Vue 在插入、更新或者移除 DOM 时,提供多种不同方式的应用过渡效果。
包括以下工具:
1、在 CSS 过渡和动画中自动应用 class;
2、配合使用第三方 CSS 动画库,如 Animate.css;
3、在过渡钩子函数中使用 JavaScript 直接操作 DOM;
4、配合使用第三方 JavaScript 动画库,如 Velocity.js。

image-20220702200614775

  1. 作用:Vue封装的在插入、更新或移除 DOM元素时,在合适的时候给元素添加样式类名。

  2. 写法:

    1. 准备好样式:

      • 元素进入的样式:
        1. v-enter:进入的起点
        2. v-enter-active:进入过程中
        3. v-enter-to:进入的终点
      • 元素离开的样式:
        1. v-leave:离开的起点
        2. v-leave-active:离开过程中
        3. v-leave-to:离开的终点
    2. 使用<transition>包裹要过度的元素,并配置name属性,此时需要将上面样式名的v换为name

      <transition name="hello">
      	<h1 v-show="isShow">你好啊!</h1>
      </transition>
      
    3. 要让页面一开始就显示动画,需要添加appear

    4. 备注:若有多个元素需要过度,则需要使用:<transition-group>,且每个元素都要指定key值。

      <transition-group name="hello" appear>
        <h1 v-show="!isShow" key="1">你好啊!</h1>
        <h1 v-show="isShow" key="2">lktest!</h1>
      </transition-group>
      
    5. 第三方动画库Animate.css

      <template>
      	<div>
      		<button @click="isShow = !isShow">显示/隐藏</button>
      		<transition-group 
      			appear
      			name="animate__animated animate__bounce" 
      			enter-active-class="animate__swing"
      			leave-active-class="animate__backOutUp"
      		>
      			<h1 v-show="!isShow" key="1">你好啊!</h1>
      			<h1 v-show="isShow" key="2">lktest!</h1>
      		</transition-group>
      	</div>
      </template>
      
      <script>
      	import 'animate.css'
      	export default {
      		name:'Test',
      		data() {
      			return {
      				isShow:true
      			}
      		},
      	}
      </script>
      

2.2 动画的使用

<transition name="hello" appear>
<h1 v-show="isShow">你好啊!</h1>
</transition>

<style>
.hello-enter-active{
 animation: hello 0.5s linear;
}

.hello-leave-active{
 animation: hello 0.5s linear reverse;
}

@keyframes hello {
 from{
   transform: translateX(-100%);
 }
 to{
   transform: translateX(0px);
 }
}
</style>

2.3 过渡的使用

<template>
<div>
 <button @click="isShow = !isShow">显示/隐藏</button>
 <transition-group name="hello" appear>
   <h1 v-show="!isShow" key="1">你好啊!</h1>
   <h1 v-show="isShow" key="2">lktest!</h1>
 </transition-group>
</div>
</template>

<script>
export default {
 name:'Test',
 data() {return {isShow:true}},
}
</script>

<style scoped>
h1 {
 background-color: orange;
 /* transition: 0.5s linear; */
}
/* 进入的起点、离开的终点 */
.hello-enter,.hello-leave-to {
 transform: translateX(-100%);
}
.hello-enter-active,.hello-leave-active{
 transition: 0.5s linear;
}
/* 进入的终点、离开的起点 */
.hello-enter-to,.hello-leave {
 transform: translateX(0);
}
</style>

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

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

相关文章

工厂智慧能源-AcrelCloud-5000智慧能源综合解决方案

功能&#xff1a; AcrelCloud-5000能耗管理云平台采用泛在物联、云计算、大数据、移动通讯、智能传感等技术手段可为用户提供能源数据、统计分析、能效分析、用能预警、设备管理等服务&#xff0c;平台可以广泛应用于多种领域。 ​ 应用场所&#xff1a; 云平台结构&#xf…

xshell是什么软件,xshells7使用教程安装及连接linux的使用方法

Xshell是一款功能强大的终端模拟器&#xff0c;用户可以通过Xshell来查看编辑各种服务器上的文件和执行各类脚本&#xff0c;其基于SSH协议进行登录&#xff0c;安全性非常高&#xff0c;被广泛应用于企业的日常开发运维工作中。它支持SSH1, SSH2, 以及Microsoft Windows 平台的…

阿里java一面凉经

目录 1.Java中int跟integer的区别2.integer在Java中有个缓存的概念&#xff0c;有了解吗3.跟equals的区别&#xff0c;equals的重写怎么进行比较4.在实际开发中为什么不能用浮点类型来存金钱的数据&#xff0c;浮点类不精确的本质是什么5.构造器能被重写吗6.反射相关&#xff1…

Excel VBA代码密码破解

1.查看VBA代码&#xff0c;有密码 2.破解密码&#xff1a; 2.1&#xff1a;修改文件名后缀&#xff0c;修改为压缩包格式 2.2&#xff1a;打开压缩包文件&#xff0c;找到文件&#xff1a;vbaProject.bin 2.3&#xff1a;把这个文件从压缩包中拖出来 2.4&#xff1a;打开.bi…

Leetcode154. 寻找旋转排序数组中的最小值 II

Every day a Leetcode 题目来源&#xff1a;154. 寻找旋转排序数组中的最小值 II 解法1&#xff1a;二分查找 一个包含重复元素的升序数组在经过旋转之后&#xff0c;可以得到下面可视化的折线图&#xff1a; 其中横轴表示数组元素的下标&#xff0c;纵轴表示数组元素的值。…

TDengine3.0与2.0版本的差异

TDengine3.0与2.0版本的差异 一、TDEnigne3.0相关环境构建及使用二、3.0与2.0的版本差异2.1 mnode及集群创建2.2 创建数据库2.3 数据库和超级表的详细查询2.4 查看超级表下有多少子表2.5 RESTful 不兼容2.6 无法修改副本数2.7 消失的时间戳 一、TDEnigne3.0相关环境构建及使用 …

ArgoCD(一): 架构及其模型

1.1 ArgoCD 概览 Argo项目2017年由Applatix公司成立&#xff0c;2018年被Intuit收购&#xff0c;之后&#xff0c;BlackRock为Argo项目贡献了Argo Events这一项目&#xff1b; Argo所有组件都通过kubernetes CRD实现 Argo生态目前主要由四个子项目组成 Argo Workflows &#xf…

Godot引擎 4.0 文档 - 手册 - 最佳实践

本文为Google Translate英译中结果&#xff0c;DrGraph在此基础上加了一些校正。英文原版页面&#xff1a;Best practices — Godot Engine (stable) documentation in English 介绍 本系列是一系列最佳实践&#xff0c;可帮助您高效地使用 Godot。 Godot 在构建项目代码库并…

图漾相机—windows- C# SDK(官网下载编译)

文章目录 一、 安装依赖&#xff1a;二. 下载swig和SDK&#xff1a;swig下载连接&#xff1a;[https://www.swig.org/](https://www.swig.org/)下载C# SDK下载 Windows Camport3 SDK 三、配置C#和swig环境变量编译前&#xff0c;请先&#xff1a;安装 Python。 安装 NumPy 和 O…

华为 HCU 硬改教程 真实参数,华为改串号 改机教程 登录异常 设备异常 环境异常Qv

华为 HCU 硬改教程 真实参数&#xff0c;华为改串号 改机教程 登录异常 设备异常 环境异常Qv HCU基础版硬改教程 须知&#xff1a;使用需要关闭所有杀毒软件 华为手机支持这些型号硬改 ------------------------------操作前准备---------------------------------- 确保手机能…

05SpringCloud 分布式事务seata

分布式事务seata 1.前言 务必要知道&#xff0c;分布式事务不可能100%完美解决问题&#xff01;只能尽量提高成功概率&#xff01;让这个成功概率尽量接近99.999%&#xff0c;为了达到这个目的&#xff0c;甚至加入人工。 2.场景 有如下业务场景&#xff1a;当我们添加订单…

“AI Earth”人工智能创新挑战赛:助力精准气象和海洋预测Baseline[2]:数据探索性分析(温度风场可视化)、CNN+LSTM模型建模

【机器学习入门与实践】入门必看系列,含数据挖掘项目实战:模型融合、特征优化、特征降维、探索性分析等,实战带你掌握机器学习数据挖掘 专栏详细介绍:【机器学习入门与实践】合集入门必看系列,含数据挖掘项目实战:数据融合、特征优化、特征降维、探索性分析等,实战带你掌…

vue3-实战-05-管理后台顶部tabbar开发-全局守卫

目录 1-顶部tabbar组件静态搭建与拆分 2-菜单折叠效果 3-顶部面包屑动态展示 4-刷新和全屏 4.1-点击刷新操作 4.2-全屏 4.3-退出登录 5-路由鉴权 1-顶部tabbar组件静态搭建与拆分 分析一下&#xff0c;顶部分为左右两侧&#xff0c;左侧是面包屑&#xff0c;右边是 刷新…

物联网行业的发展的趋势、现状与挑战

随着物联网技术的不断发展&#xff0c;越来越多的行业正在积极拥抱物联网&#xff0c;进行物联网开发。在这些行业中&#xff0c;有大量的产品和服务都在使用物联网技术。事实上&#xff0c;目前有超过1000亿个设备在运行着联网设备。全球智能传感器市场预计将从2021年的272亿美…

Codeforces Round 877 div2 C No Prime Differences

目录 一、题目 二、题目分析 三、 一、题目 传送门 C. No Prime Differences time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output You are given integers n and m. Fill an n by m grid with the…

分布式理论 - CAP

tip: 作为程序员一定学习编程之道&#xff0c;一定要对代码的编写有追求&#xff0c;不能实现就完事了。我们应该让自己写的代码更加优雅&#xff0c;即使这会费时费力。 文章目录 一、简介深入理解三、CAP的应用应用 一、简介 CAP理论是分布式系统中最重要的理论之一&#xf…

windows编译CTK

文章目录 windows编译CTK环境准备使用cmake-gui编译CTK测试VTK windows编译CTK 环境准备 CTK源码 &#xff1a;https://github.com/commontk/CTK CTKData 源码&#xff1a;https://github.com/commontk/CTKData 最新版本的不用下载CTKData 相关的下载会在编译的时候去下载&…

CSS样式——悬停变色

目录 准备图标 实现效果 基础模板 清除默认样式 重合相同图标 实现悬停变色 CSS样式——悬停变色&#xff0c;效果如下所示&#xff1a; 准备图标 在完成上面的效果之前&#xff0c;我们需要准备图标&#xff0c;这里我使用的是阿里巴巴矢量图标库&#xff0c;不会使用阿…

聚力自主安全,领跑先进计算!麒麟信安闪耀2023首届国家新一代自主安全计算系统产业集群融通生态大会

5月25日至26日&#xff0c;2023首届“国家新一代自主安全计算系统产业集群”融通生态大会在长沙隆重举行。大会以“聚力自主安全 领跑先进计算”为主题&#xff0c;由工业和信息化部规划司指导&#xff0c;湖南省工业和信息化厅、长沙市人民政府主办&#xff0c;旨在围绕实现“…

C++入门——缺省参数|函数重载

前言&#xff1a; C入门我们主要是补充C语言的不足&#xff0c;为后续类和对象学习打基础。在前面我们学了命名空间、输入输出&#xff0c;今天我们继续学习。 上期链接&#xff1a; C入门——关键字|命名空间|输入&输出_wangjiushun的博客-CSDN博客 目录&#xff1a; …