Vue2 常用用法

news2024/11/24 14:47:59

Vue2 常用用法

  • Vue 动画
    • 1. 进入、离开的过渡
    • 2. 列表的过渡
    • 3. 状态的过渡
  • Vue 透传Attrbute、插槽
    • 1.透传Attrbute
    • 2. 插槽
  • CSS布局原则
    • flex 布局常见的问题:当子元素内容超出父元素时,不出现滚动条的问题。
    • 父元素flex:1且内容超出后的最佳解决方案:出现滚动条。
  • 关于动画与过渡

Vue 动画

Vue 动画,可以分为一下三类

  1. 进入、离开的过渡
  2. 列表的过渡
  3. 状态的过渡

1. 进入、离开的过渡

Vue <transition> 封装了动画库,支持元素的进入与离开的过渡。

一般来说,元素的进入与离开是元素添加,或者删除的过程

写的时候,使用v-if 或者v-show;可以使用 translate (平移),用于元素的移动

动画也有钩子函数。当移动到某个位置的时候,触达某个钩子函数。
动画钩子函数的本质是副作用函数,就是触发动画的同时,还需要触发别的操作,这个别的操作就是副作用。可以在触发动画的时候,触发某个钩子函数,操作DOM。比如动画入场的时候,背景色是红色,动画出场的时候,背景色变成蓝色。

2. 列表的过渡

关于列表的动画,用 <transition-group> 就行。可以操作list的动画。

3. 状态的过渡

状态驱动了过渡。到达了某个状态,然后驱动着动画。

这个状态是可变化的,并且被监听到的。所以这个状态是【watch】、【computed】的状态。

  1. computed:通过已有的属性,派生出新的状态
  2. watch:监听某个状态,发生变化以后,做一些操作。

Vue 透传Attrbute、插槽

1.透传Attrbute

关于穿透Attr:什么是组件透传?父组件的class、style、@click事件,会传到子组件。

举个例子

// 父组件
<Mybutton class="fclass"></Mybutton>
// 子组件
<button class="cclass"></button>


// 因为Attr穿透,将来渲染的格式
<button class="cclass fclass"></button>

1.如果子组件本身就有class 或者 style ,那么会合并。

2. attr 穿透的话,可以穿透多层,从父组件穿透到儿子组件,再穿透到孙子组件。

3. 子组件有多个根节点的,肯定是没法穿透了。

4. 可以通过 this.$attr 来获取所有的穿透的属性。

2. 插槽

关于插槽,常用的三个地方:

  1. 插槽中有默认值,或者具名插槽。
  2. 插槽中插入组件。
  3. 作用域插槽。子组件声明插槽数据,父组件拿来用

CSS布局原则

  1. 先结构后样式。
  2. 大结构可以用id,内部结构用class。
  3. 定位:相对定位+绝对定位。
  4. 给容器设置内边距或外边距或者边框,对应容器的宽度一定要减去相应的宽度或高度。

flex 布局常见的问题:当子元素内容超出父元素时,不出现滚动条的问题。

父元素设置flex布局且宽度700,背景色绿色。子元素宽度200,背景色黄色。

在这里插入图片描述

当子元素的数量变成四个,甚至更多的时候,我们发现,子元素的宽度失效了

原因就是:使用display:flex;的时候,子项目中默认flex-shirk:1;

也就是说 会对剩余空间撑满情况下,进行收缩自适应。

在这里插入图片描述

我们给子元素设置flex-shirk:0;不让均匀分配空间。且加上滚动条就行。

在这里插入图片描述

父元素flex:1且内容超出后的最佳解决方案:出现滚动条。

父元素使用display:flex垂直(或水平)布局,我们在其中的某个子元素中可能会加上flex:1,用于占满全部空间;

此时子元素加起来的高度(或宽度)有可能就会超过父元素的高度; 这个时候的最佳解决方案是:出现滚动条;

解决方案:

  1. 给flex:1的子元素加上overflow:hidden让它不能超出父元素的范围。
  2. 子元素里的内容再加一个div,这个div使用height:100%,占满父元素整个高度,并且overflow:auto

关于动画与过渡

动画与过渡: 动画不需要事件触发,过渡需要。

举个例子,比如一个loading的动画。
loading动画的原理就是,每个字符都向上动,且有延迟时间。

<div class="loading">
  <span>l</span>
  <span>o</span>
  <span>a</span>
  <span>d</span>
  <span>i</span>
  <span>n</span>
  <span>g</span>
  <span>.</span>
  <span>.</span>
  <span>.</span>
</div>


.loading {
  margin: 100px;
  height: 100px;
  line-height: 100px;
}

.loading > span {
  display: inline-block;
  text-transform: uppercase;
  letter-spacing: 2px;
  animation: loadingWord 800ms ease-in infinite alternate;
}

/* 10个字母,每一个的延迟都不同 */
.loading-1 > span:nth-of-type(1){ animation-delay: 200ms; }
.loading-1 > span:nth-of-type(2){ animation-delay: 300ms; }
.loading-1 > span:nth-of-type(3){ animation-delay: 400ms; }
.loading-1 > span:nth-of-type(4){ animation-delay: 500ms; }
.loading-1 > span:nth-of-type(5){ animation-delay: 600ms; }
.loading-1 > span:nth-of-type(6){ animation-delay: 700ms; }
.loading-1 > span:nth-of-type(7){ animation-delay: 800ms; }
.loading-1 > span:nth-of-type(8){ animation-delay: 900ms; }
.loading-1 > span:nth-of-type(9){ animation-delay: 1000ms; }
.loading-1 > span:nth-of-type(10){ animation-delay: 1100ms; }


@keyframes loadingWord {
  0% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(0);
  }
  100% {
    transform: translateY(-16px);
  }
}

过渡需要触发时机,比如click,:hover

<div class="myTransition">
	关于过渡
</div>

.myTransition{
	width: 200px;
	height: 100px;
	background-color: pink;
	/* transition: 要过渡的属性  花费时间  运动曲线  何时开始; */
	transition: width 0.6s ease 0s, height 0.3s ease-in 1s;
}
.myTransition:hover {  /* 鼠标经过盒子,触发过渡 */
  width: 600px;
  height: 300px
}

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

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

相关文章

新版首途影视视频网站源码/22套带后台版全开源+无加密源码(全新二开完整版)

源码简介&#xff1a; 首途影视是一个非常受欢迎的视频网站&#xff0c;提供各种电影、电视剧、综艺节目等内容。它是一个基于Web的视频流媒体平台&#xff0c;你可以随时随地在手机上或电脑上在线观看自己喜欢的影视作品。 新版首途影视视频网站源码/22套带后台版全开源无加…

U盘恢复怎么做?4个方法,拯救你的u盘数据!

“我的u盘对我来说意义重大&#xff0c;里面保存着很重要的照片和视频。但是不知道是不是太久没使用&#xff0c;现在将u盘插入电脑后&#xff0c;有些数据好像丢失了&#xff0c;完全没办法查看了。怎么解决呢&#xff1f;” 随着u盘的广泛使用&#xff0c;数据丢失问题也更为…

7.16 SpringBoot项目实战 【学生入驻】(下):正确理解 编程式事务和声明式事务

文章目录 前言一、service层1. 提交学生信息2. 申请借阅资格3. 重新提交4. 事务 二、web层 StudentController三、测试最后 前言 通过上文&#xff0c;我们实现了【学生入驻】的第一个API&#xff1a;查询学生信息&#xff0c;接下来的流程通常如下图&#xff1a;如果学生未入…

Python第二次作业(2)【控制台界面】

要求&#xff1a;使用Python输出五个控制台界面 第一张&#xff1a; 代码如下&#xff1a; print(" 英雄联盟商城登录界面 ") print("~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*~*") print(" 1.用户登录 &q…

STL常用遍历、查找算法

目录 算法概述 常用遍历算法for_each 常用遍历算法transform 常用查找算法find 常用查找算法find_if 常用查找算法adjacent_find 常用查找算法binary_search 常用查找算法count 常用查找算法count_if 算法概述 算法主要是由头文件<algorithm><functional>…

Linux系统编程-文件

目录 1、系统编程介绍以及文件基本操作文件编程系统调用文件基本读写练习 2、文件描述符以及大文件拷贝文件描述符大文件拷贝对比试验 3、文件实战练习 1、系统编程介绍以及文件基本操作 系统编程是基于Linux封装好的一些函数&#xff0c;进行开发。 Linux文件信息属性在indo…

面试题:集群高并发环境下如何保证分布式唯一全局ID生成?

文章目录 前言问题为什么需要分布式全局唯一ID以及分布式ID的业务需求ID生成规则部分硬性要求ID号生成系统的可用性要求 一般通用解决方案UUID数据库自增主键 集群分布式集群基于Redis生成全局ID策略单机版集群分布式 雪花算法什么是雪花算法结构实现SpringBoot整合雪花算法 前…

【Pm4py第七讲】关于visualization

本节用于介绍pm4py中的可视化函数&#xff0c;包括可视化bpmn、petri、性能图谱、变迁系统等。 1.函数概述 本次主要介绍Pm4py中一些常见的可视化函数&#xff0c;总览如下表&#xff1a; 函数名说明view_alignments(log, aligned_traces[, format])可视化对齐方法 view_bpmn(…

QT之QML开发 行列布局,流布局,网格布局

本节将演示一下QML布局之行列布局&#xff0c;流布局和网格布局 目录 1.行列布局 1.1一列多行 1.2 一行多列 2.流布局 2.1 从左向右&#xff08;默认&#xff09; ​编辑 2.2 从上往下 3.网格布局 1.行列布局 1.1一列多行 // 行列布局 import QtQuick 2.15 import Qt…

前端架构师进阶之路07_JavaScript函数

1 函数的定义与调用 1.1 初识函数 函数是用于封装一段完成特定功能的代码。 相当于将一条或多条语句组成的代码块包裹起来&#xff0c;在使用时只需关心参数和返回值&#xff0c;就能完成特定的功能&#xff0c;而不用了解具体的实现。 // 内置函数 console.log(parseFloat…

基于R语言、MATLAB、Python机器学习方法与案例分析

目录 基于R语言机器学习方法与案例分析 基于MATLAB机器学习、深度学习在图像处理中的实践技术应用 全套Python机器学习核心技术与案例分析实践应用 基于R语言机器学习方法与案例分析 机器学习已经成为继理论、实验和数值计算之后的科研“第四范式”&#xff0c;是发现新规律&…

iOS技术之app审核信息填写联系人信息提交失败

在AppStore Connect中填写联系人信息中联系方式的电话号码时,输入11位手机号,一直提示 此栏无效: 报错一直说明次栏无效, 开始以为手机号不兼容, 换了好多手机号,座机号都不行, 最终尝试正确的输入格式是:86-xxxxxxxxxxx, 前面有""号, 连接用"-"

关于Modbus消息帧,这些内容你都了解吗?

在 Modbus网络通信的两种传输模式中&#xff08; ASCII或RTU&#xff09;&#xff0c;传输设备以将Modbus消息转为有起点和终点的帧&#xff0c;这就允许接收的设备在消息起始处开始工作&#xff0c;读地址分配信息&#xff0c;判断哪一个设备被选中&#xff08;广播方式则传给…

EfficientFormer:高效低延迟的Vision Transformers

我们都知道Transformers相对于CNN的架构效率并不高&#xff0c;这导致在一些边缘设备进行推理时延迟会很高&#xff0c;所以这次介绍的论文EfficientFormer号称在准确率不降低的同时可以达到MobileNet的推理速度。 Transformers能否在获得高性能的同时&#xff0c;跑得和Mobile…

华为云云耀云服务器 L 实例评测:快速建站的新选择,初创企业和开发者的理想之选

华为云云耀云服务器 L 实例评测&#xff1a;快速建站的新选择&#xff0c;初创企业和开发者的理想之选 文章目录 华为云云耀云服务器 L 实例评测&#xff1a;快速建站的新选择&#xff0c;初创企业和开发者的理想之选导语&#xff1a;摘要&#xff1a; 正文产品概述部署简易性步…

TG Pro for Mac强大的硬件温度检测、风扇控制工具测评

无论您是旧机型还是全新MacBookPro&#xff0c;使用TG Pro均可延长Mac的使用寿命。小编就给大家详细说一下使用TG Pro的体验~ 打开TG Pro&#xff0c;您会注意到的第一件事是带有大量温度&#xff0c;风扇速度和诊断信息的主窗口。 这是您将与之交互的应用程序的主要区域之一。…

[动物文学]走红年轻人化身“精神动物”,这届年轻人不想做人了

数据洞察流行趋势&#xff0c;敏锐把握流量风口。本期千瓜与您分享近期小红书八大热点内容&#xff0c;带您看热点、追热门、借热势&#xff0c;为您提供小红书营销布局风向标。 「动物文学」走红 年轻人化身“精神动物” 其实&#xff0c;这届年轻人“不想做人”很久了………

# 深入理解高并发编程(二)

深入理解高并发编程&#xff08;二&#xff09; 文章目录 深入理解高并发编程&#xff08;二&#xff09;synchronized作用使用方法示例代码 ReentrantLock概述示例代码ReentrantLock中的方法 ReentrantReadWriteLock介绍特点示例代码 StampedLock示例代码 wait() 和 notify()示…

软件设计模式系列之十六——命令模式

目录 1 模式的定义2 举例说明3 结构4 实现步骤5 代码实现6 典型应用场景7 优缺点8 类似模式9 小结 1 模式的定义 命令模式&#xff08;Command Pattern&#xff09;是一种行为型设计模式&#xff0c;旨在将请求发送者和接收者解耦&#xff0c;将一个请求封装为一个对象&#x…

OmniOutliner 5 Pro for Mac(信息大纲记录工具)v5.12正式版 支持M1、M2

OmniOutliner 5 Pro是一款功能强大的大纲工具&#xff0c;可以帮助用户进行头脑风暴、组织思维和创建结构化的笔记。以下是这款软件的一些主要功能和特点&#xff1a; 大纲模式。OmniOutliner 5 Pro支持全屏模式、分屏模式、实时预览模式和导航模式等多种创作模式&#xff0c;…