当前位置: 首页 > news >正文

通过自定义指令实现图片懒加载

前提:使用到了VueUse插件。
先创建自定义插件文件夹

// 定义懒加载插件
import { useIntersectionObserver } from '@vueuse/core' // 这个是VueUse里的一个方法export const lazyPlugin = {install(app) {// 懒加载指令逻辑  定义全局指令app.directive('img-lazy', {mounted(el,binding) {// el: 指令绑定的元素 在这里指img元素// binding:binding.value 指令等于号后面绑定的表达式的值 这里指图片url// useIntersectionObserver方法是判断目标元素是否进入视口区域// 解构出stop方法,手动停止监听防止内存浪费const { stop } = useIntersectionObserver(el,([{ isIntersecting }]) => {if (isIntersecting) {// 进入视口区el.src = binding.valuestop()}},)}})}
}

在需要实现图片懒加载区域添加上自定义指令

<img v-img-lazy="item.picture" alt="">

在main.js中引入注册

// 引入懒加载指令插件并注册
import { lazyPlugin } from './directives'
const app = createApp(App)
app.use(lazyPlugin)

注意点就是:useIntersectionObserver对于元素的监听是一直存在的,除非手动停止监听,所以stop方法的目的就是:在监听的图片第一次完成加载之后就停止监听

http://www.lryc.cn/news/473357.html

相关文章:

  • QT项目-仿QQ聊天(带宠物系统)
  • 前端算法题:3216. 交换后字典序最小的字符串(力扣每日一题)
  • 29.1 时序监控和日志监控的对比,分析日志监控的核心诉求
  • git仓库分支
  • 多模态机器学习在精准健康中的应用--九五小庞
  • 提升网站速度与性能优化的有效策略与实践
  • MySQL索引从基础到原理,看这一篇就够了
  • 普通高考预报名上传蓝底证件照手机自拍方法详解
  • Webserver(2.3)exec函数族
  • LeetCode Hot100 - 子串篇
  • 【Android】Convenient ADB Commands
  • elementUI 时间控件控制时间选择
  • 什么是x86架构,什么是arm架构
  • c语言水仙花,超简单讲解
  • Flutter 13 网络层框架架构设计,支持dio等框架。
  • Python小白学习教程从入门到入坑------第二十课 闭包修饰器(语法基础)
  • Vue+element-ui实现网页右侧快捷导航栏 Vue实现全局右侧快捷菜单功能组件
  • 如何配置,npm install 是从本地安装依赖
  • Python画图3个小案例之“一起看流星雨”、“爱心跳动”、“烟花绚丽”
  • Knife4j配置 ▎使用 ▎教程 ▎实例
  • 电子电气架构 --- 车载芯片现状
  • Unity 二次元三渲二
  • echart实现地图数据可视化
  • 网关三问:为什么微服务需要网关?什么是微服务网关?网关怎么选型?
  • Mybatis-plus解决兼容oracle批量插入
  • Kaggle竞赛——灾难推文分类(Disaster Tweets)
  • SC2601音频编解码器可pin to pin兼容ES8311
  • 通用AT指令
  • 二进制狼群算法
  • STL——list的介绍和使用