vue-lazyload 图片懒加载的原理与使用

一、图片懒加载vue-lazyload是什么?
背景:

图片是非常占用页面渲染时间的,尤其是一些图片比较多的页面,过多的图片可能会造成页面的卡顿,降低流畅度影响用户体验,我们在实际开发中,对于处于视口外的图片,在用户没有滚动到位置的时候没必要渲染,此时我们就需要用到懒加载,让图片延后渲染。
vue中有一个插件vue-lazyload,它提供了一个“vue指令”可以完成上面需求

原理:

一、获取视口底部位置,在移动端可以使用 clientHeight 来获取到视口底部的像素值,pc端可以使用getBoundingClientRect() 获取

二、收集所有img标签转成数组并保存,当然实际开发中,我们对获取方式还要加一些其他条件,避免有些不需要懒加载的图片也被收集进来,这里我就简单点了。

三、写个渲染函数用来处理图片的渲染逻辑,主要逻辑是判断当前dom节点是否在视口内

二、使用步骤
1.安装vue-lazyload插件
代码如下(示例):

//npm 
npm install vue-lazyload --save-dev//yarn
yarn add vue-lazyload//如果你是用Vue2.0,请不要用最新的版本,可以指定支持Vue2.0的版本
//例如:
yarn add vue-lazyload@1.3.3

2.main.js中进行引用
代码如下(示例):

import VueLazyload from "vue-lazyload";Vue.use(VueLazyload);//建议自定义配置插件,设置相应的loading图和图片错误显示的统一图片
Vue.use(VueLazyload, {
preLoad: 1.3,
error: require('../src/assets/lazy/error.png'),
loading: require('../src/assets/lazy/loading.gif'),
attempt: 1
})

3.使用方法
代码如下(示例分单图和多图的使用方式):

//单图
<img v-lazy="psdimg"/>//多图
<div v-lazy-container="{ selector: 'img' }"><img data-src="https://domo.com/1.png"><img data-src="//https://domo.com/2.png"><img data-src="//https://domo.com/3.png"><img data-src="//https://domo.com/...png">   
</div>

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

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

相关文章

Redis 7.0版本主从复制机制

1、引言 Redis是一个开源、高性能、内存键值存储系统&#xff0c;同时也提供了数据结构服务器的功能。它支持五种主要的数据类型&#xff1a;字符串&#xff08;String&#xff09;、哈希表&#xff08;Hashes&#xff09;、列表&#xff08;Lists&#xff09;、集合&#xff…

【TEE】内存完整性保护

Hash Functions&Merkle Tree 对读操作进行完整性检查&#xff0c;通过在加载的块上重新计算一个哈希&#xff0c;然后根据片外地址将得到的哈希与片上哈希比较。 缺点&#xff1a;不可承受的片上存储开销&#xff0c;并假设128位哈希和512位cache line&#xff0c;其开销为…

LABEL-EFFICIENT SEMANTIC SEGMENTATION WITHDIFFUSION MODELS

基于扩散模型的标签高效语义分割 摘要&#xff1a; 去噪扩散概率模型最近受到了很多研究的关注&#xff0c;因为它们优于gan等替代方法&#xff0c;并且目前提供了最先进的生成性能。扩散模型的优越性能使其成为一些应用程序的吸引人的工具&#xff0c;包括绘图&#xff0c;超…

STM32CubeIDE基础学习-新建STM32CubeIDE基础工程

STM32CubeIDE基础学习-新建STM32CubeIDE基础工程 前言 有开发过程序的朋友都清楚&#xff0c;后面开发是不需要再新建工程的&#xff0c;一般都是在初学时或者有特殊需要的时候才需要新建项目工程的。 后面开发都是可以在这种已有的工程上添加相关功能就行&#xff0c;只要前…

智能合约的编程语言

智能合约的编程语言 Solidity: https://learnblockchain.cn/docs/solidity/ 相关资料&#xff1a; https://guide.pseudoyu.com/docs/study_path/ 智能合约的技术栈 Hardhat https://hardhat.org/ Truffle https://trufflesuite.com/docs/truffle/ Remix https://hard…

基于openKylin与RISC-V的MindSpore AI项目实践

项目目标&#xff1a; 在openKylin系统上安装和配置MindSpore框架。开发一个简单的图像分类模型&#xff0c;并在RISC-V平台上进行训练和推理。根据RISC-V的特性&#xff0c;对MindSpore框架进行必要的优化。 目录 项目目标&#xff1a; 训练模型 编写训练代码&#xff0c;设…

外包干了3个月,技术倒退明显

先说情况&#xff0c;大专毕业&#xff0c;18年通过校招进入湖南某软件公司&#xff0c;干了接近6年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试&#xf…

Flutter App代码混淆

Flutter 应用混淆 Flutter 应用的混淆非常简单&#xff0c;只需要在构建 release 版应用时结合使用 --obfuscate 和 --split-debug-info 这两个参数即可。 flutter build apk –obfuscate --split-debug-info 命令需要指定输出调试文件的位置&#xff0c;该命令会生成一个符号映…

挑战给女神节送礼物,怎么寄快递才能快速的送到他手中呢?

马上就是三八女神节了&#xff0c;怎么样&#xff1f;你给心爱的她或者敬爱的她准备礼物了吗&#xff0c;如果已经准备好&#xff0c;你该怎么送给她呢&#xff1f;是当面送给她&#xff1f;还是通过快递打包送给她呢&#xff1f;这里推荐使用闪侠惠递寄快递发货给他吧&#xf…

SQL Server 阻止了对组件 ‘Ole Automation Procedures‘ 的 过程‘sys.sp_OACreate‘ 的访问

SQL Server 阻止了对组件 Ole Automation Procedures 的 过程sys.sp_OACreate 的访问&#xff0c;因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 Ole Automation Procedures。有关启用 Ole Automation Procedures 的详细信息&a…

防御-day6-内容安全()

一、文件过滤技术 这里说的文件过滤技术&#xff0c;是指针对文件的类型进行的过滤&#xff0c;而不是文件的内容。 想要实现这个效果&#xff0c;我们的设备必须识别出&#xff1a; 承载文件的应用 --- 承载文件的协议很多&#xff0c;所以需要先识别出协议以及应用。 文件传输…

【小白友好】LeetCode 删除并获得点数

基础题 打家劫舍https://leetcode.cn/problems/house-robber/ 小白解法 删除nums[i]就会使得所有nums[i]-1和nums[i]1的值都消失&#xff0c;手写了几个&#xff0c;发现找来找去不方便&#xff0c;还不如先排个序&#xff0c;然后这样nums[i]-1和nums[i]和nums[i]1就能靠在…

【Python】使用numpy进行神经网络激活函数算法描述

【Python】使用numpy进行神经网络激活函数算法描述 系统&#xff1a;macOS 10.14.5 IDE&#xff1a;PyCharm 2018.2.4 一、What 1.1 NumPy NumPy(Numerical Python) 是 Python 语言的一个扩展程序库&#xff0c;支持大量的维度数组与矩阵运算&#xff0c;此外也针对数组运算提供…

基于灰狼算法GWO的城市三维无人机路径规划(复杂地形三维航迹路径规划)

摘要 本文提出了一种利用灰狼算法GWO来解决城市环境下无人机三维路径规划问题的方法。这种方法将复杂的无人机航迹规划任务转化为一个优化问题&#xff0c;然后运用灰狼算法GWO来解决这个优化问题。灰狼算法GWO是一种模拟灰狼种群捕猎行为的优化算法&#xff0c;它具备强大的全…

2024年第一届CS2major,新胶囊即将发行,需要提前做哪些布局

2024年第一届CS2major&#xff0c;将会在3月17日哥本哈根开始。 所以&#xff1a; 1、新的胶囊大概率会在3月10日左右发布。 2、网传战队挂坠&#xff0c;不知道是否会出现&#xff1f;&#xff08;原本出现过战队布章包&#xff0c;由于销量太差&#xff0c;第二届就取消了…

山人求道篇:八、模型的偏差与交易认知

原文引用https://mp.weixin.qq.com/s/xvxatVseHK62U7aUXS1B4g “ CTA策略一波亏完全年,除了交易执行错误导致的以外,这类策略都是多因子策略,一般会用机器学习组合多因子得出一个信号来进行交易。规则型策略几乎不会出现一波做反亏完全年的情况。这是有以下几个原因的: 多…

Crossover24新版发布!搭载Wine9提升Mac游戏体验!

2024年2月28日&#xff0c;著名的软件Crossover正式推出了2024年的首个全新版本Crossover24。Crossover 24版本的更新带来了许多功能优化和游戏优化&#xff0c;使用户能够更好地在Mac系统上运行各种软件和游戏&#xff0c;并且支持32位旧版软件的兼容运行。 Crossover24最新版…

Nodejs 第五十章(lua的基本使用)

lua基本使用 全局变量局部变量 全局变量是在全局作用域中定义的变量&#xff0c;可以在脚本的任何地方访问。全局变量在定义时不需要使用关键字&#xff0c;直接赋值即可。 xiaoman xmzsprint(xiaoman)局部变量是在特定作用域内定义的变量&#xff0c;只能在其所属的作用域…

Openfeign+Ribbon+Hystrix断路器(服务降级)

热部署对于Hystrix的热不是不是很明显 所以最好修改代码之后重启服务 简介 在微服务架构中存在多个可直接调用的服务,这些服务若在调用时出现故障会导致连锁效应,也就是可能让整个系统变得不可用,这种情况我们称之为服务雪崩效应. 服务雪崩效应通常发生在微服务架构中&…

LeetCode——回溯算法(Java)

回溯算法 简介[中等] 77. 组合[中等] 216. 组合总和 III[中等] 17. 电话号码的字母组合[中等] 39. 组合总和[中等] 40. 组合总和 II[中等] 131. 分割回文串[中等] 93. 复原 IP 地址[中等] 78. 子集[中等] 90. 子集 II[中等] 491. 非递减子序列[中等] 46. 全排列[中等] 47. 全排…