在vue3中手写按需加载图片

news/2024/11/17 17:32:40/文章来源:https://www.cnblogs.com/fubai/p/18405445

在我们的网页中.假如使用了大量的图片,每个图片都是需要去访问加载的
这就影响了我们的访问速度,手写一个按需加载组件,就可以解决这个问题
让图片处于页面视图的时候再加载,减轻网页访问负担

利用vue3官网给出的钩子
我们常用的就是onMountent
如官网所示

为了及时监测,这里使用vueUse来进行检测视图是否包含监控组件/标签
el代表的是标签本身,bing是代表了标签的值,一般用binding.value表示
isIntersecting代表监控的组件是否出现在视图中

app.directive('img-lazy',{mounted(el, binding) {// console.log(el);const {stop}=  useIntersectionObserver(el,([{ isIntersecting }]) => {// console.log(isIntersecting);if(isIntersecting){// console.log(binding.value);console.log("el",el)el.src = binding.valuestop()}},)},}

标签用v-img-lazy表示,在使用过程视图会反复出现这个懒加载进而出现重加载问题,那么我们引入vueuse内置的stop函数来进行预防,确保只执行一次
2.为了实现单一功能,我们另开一个文件,在main.js中使用vue.use(导入的该插件)

新开一个directives/index.js

import { useIntersectionObserver } from '@vueuse/core'export  const lazyLand = {install(app){app.directive('img-lazy',{mounted(el, binding) {// console.log(el);const {stop}=  useIntersectionObserver(el,([{ isIntersecting }]) => {// console.log(isIntersecting);if(isIntersecting){// console.log(binding.value);console.log("el",el)el.src = binding.valuestop()}},)},})}}

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

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

相关文章

单个48TB大小SQL Server数据库备份导致日志文件无法截断

单个48TB大小SQL Server数据库备份导致日志文件无法截断SQL Server 版本:SQL Server 2019背景在一个48T大小的单数据库环境中,采用简单恢复模式,日志文件大小限制为600G。执行一次完整备份时,耗时超过12小时,导致日志文件无法截断并达到上限,后续事务无法正常写入,导致整…

第一章 联言命题选言命题及其推理-德摩根定律及其练习题

听他讲一遍怎么做 自己怎么做 ==》对比 真值表做题!

第一章 联言命题选言命题及其推理-选言命题性质

可以同时发生的 相容选言命题 具备并存关系

联言命题选言命题及其推理-选言命题性质

可以同时发生的 相容选言命题 具备并存关系

51nod 1254 最大子段和 V2

51nod 1254 最大子段和 V2#include <bits/stdc++.h> using namespace std; #define ll long long int n; ll a[50005]; ll sum[50005]; ll lmax[50005],rmax[50005]; int main(){ios::sync_with_stdio(false);cin>>n;for(int i=1;i<=n;i++){cin>>a[i];sum…

南沙C信++奥赛陈老师解一本通题: 1314:【例3.6】过河卒(Noip2002)

​【题目描述】 棋盘上A点有一个过河卒,需要走到目标B点。卒行走的规则:可以向下、或者向右。同时在棋盘上的某一点有一个对方的马(如C点),该马所在的点和所有跳跃一步可达的点称为对方马的控制点,如图3-1中的C点和P1,……,P8,卒不能通过对方马的控制点。棋盘用坐标表…

QT知识整合--数据库操作

不管是在哪使用数据库,终归是需要学习sql语言的,所以还没学的小伙伴建议打道回府先去把数据库学了再来看。我自己将QT中一些常用的数据库分为内部数据库和外部数据库。这所谓的内部数据库就是像“SQLite”这种大部分使用场景是嵌入式的,它将整个数据库存储在一个单一的文件中…

3.1 gradio的基本使用详解

gr.Text:用于文本输入,适用于自然语言处理任务的模型。 gr.Image:用于图像上传,适用于图像处理或计算机视觉模型。 gr.Audio:用于音频输入,适用于语音识别或音频处理模型。import gradio as grdef greet(name):return "Hello " + name + "!"demo = g…

WRF设置模式垂直层

翻译自WRF论坛https://forum.mmm.ucar.edu/threads/stretched-vertical-levels-information.14975/#post-37729设置模式垂直层​ Eta 层由 real 自动计算,基于namelist选项“e_vert.”所设置的层数。然而,完整的eta 层次可以由namelist选项“eta_levels.”来显式的指定。层次…

3.MR

MR一.MR概述1.mr定义Mr是一个分布式运算程序的编程框架,是用户开发”基于hadoop的数据分析应 用”的核心框架Mr核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整地 分布式运算程序,并发运行在一个hadoop集群上2.mr优缺点2.1.优点(1)易于编程.用户只关心业务逻辑…