vue图片懒加载

这篇具有很好参考价值的文章主要介绍了vue图片懒加载。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、首先解释一下什么叫图片懒加载:

        我们使用软件的时候,会有很多图片需要加载,但是当网络环境不好,或内存不足的情况,就会导致用户首屏加载特别慢,影响用户体验,所以为了解决这个问题,提出了图片懒加载的方法来解决该问题。

2、解决思路:

        ①当图片区域到达用户界面可视区域的时候才进行加载图片

        ②首屏加载时候img标签src赋为空值,这样就不会去渲染看不见的图片而浪费时间

        ③当用户滑动到图片的可视区域后,替换src的路径,改为正式路径,则开始渲染图片

3、好处:

        这样做的好处就是可以使用当前网络环境来全力加载该可视区域的图片,增加加载速度;在图片没有到达可视区域的时候不会加载,避免浪费性能

4、代码实现(vue2):

        ① test.vue 文件

<template>
  <div class="app">
    <div class="top">fjdskla</div>
    <div><img v-lazy src="../static/image/left.jpg" alt="img" /></div>
    <div><img v-lazy src="../static/image/left.png" alt="img" /></div>
    <div><img v-lazy src="../static/image/left.jpg" alt="img" /></div>
    <div><img v-lazy src="../static/image/left.png" alt="img" /></div>
  </div>
</template>

<script>
export default {
  data() {
    return {}
  },
  created() {},
  mounted() {},
  methods: {},
}
</script>

<style scoped lang="scss">
.app {
  .top {
    height: 2000px;
    width: 100%;
    background-color: beige;
  }

  div {
    margin-top: 50px;
  }
}
</style>

        ② main.js 设置全局自定义指令 命名为 lazy

// 定义懒加载图片或者文件等,自定义指令
Vue.directive('lazy', (el, binding) => {
  let oldSrc = el.src //保存旧的src,方便后期渲染时候赋值src真实路径
  el.src = "" //将渲染的src赋为空,则不会渲染图片出来
  let observer = new IntersectionObserver(([{ isIntersecting }]) => { // 调用方法得到该elDOM元素是否处于可视区域
    if (isIntersecting) { //回调是否处于可视区域,true or false
      el.src = oldSrc //如果处于可视区域额,将最开始保存的真实路径赋予DOM元素渲染
      observer.unobserve(el) // 只需要监听一次即可,第二次滑动到可视区域时候不在监听
    }
  })
  observer.observe(el) // 调用方法
})

5、弊端

        IntersectionObserver 方法可能没有兼容全浏览器,如果要实现兼容全浏览器,可以引入对应的插件实现文章来源地址https://www.toymoban.com/news/detail-512433.html

到了这里,关于vue图片懒加载的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【概念记录】什么是 行最简形 矩阵?| 人工智能 面试题:解释一下集成学习(Ensemble Learning)的概念和优势。| 集成学习 概念,优势,方法

      “生活不是电影,生活比电影苦。”     🎯作者主页: 追光者♂🔥          🌸个人简介:   💖[1] 计算机专业硕士研究生💖   🌿[2] 2023年城市之星领跑者TOP1(哈尔滨)🌿   🌟[3] 2022年度博客之星人工智能领域TOP4🌟   🏅[4] 阿里云社区特邀专家博主🏅   🏆[5] CSD

    2024年02月06日
    浏览(59)
  • vue图片懒加载

    1、首先解释一下什么叫图片懒加载:         我们使用软件的时候,会有很多图片需要加载,但是当网络环境不好,或内存不足的情况,就会导致用户首屏加载特别慢,影响用户体验,所以为了解决这个问题,提出了图片懒加载的方法来解决该问题。 2、解决思路:      

    2024年02月11日
    浏览(37)
  • vue 实现图片懒加载

    有些页面可能展示的是大量的图片,如果我们一次性加载所有图片就会浪费性能,影响用户体验,所以我们就会懒加载这些图片。即可视区域之外的图片不加载,随着页面的滚动,图片进入可视区域,则触发图片的加载显示。 优点:页面加载速度快,用户体验感更好且节省流

    2024年02月12日
    浏览(86)
  • vue循环如何动态加载本地图片

    显示效果: 代码: html:  js:

    2024年02月12日
    浏览(68)
  • Vue3实现图片懒加载

    通过第三方插件VueUse实现图片懒加载。 1、需要安装依赖 2、定义懒加载的插件 xxx/index.js 3、在main.js文件内注册指令 4、使用 注册好指令就可以在标签上使用,使用指令时需要加v-。 这样一个自定义全局指令实现图片懒加载就做好了。

    2024年04月10日
    浏览(50)
  • vue3前端开发,自学一下reactive,ref的差异是什么。

    vue3前端开发,自学,学习一下,reactive和ref的差别。以及基础用法。 前言,这2个东西,都能对外输出动态的数据对象。但是,有点区别,是,reactive只支持输入一个对象作为参数,ref则还可以支持简单的数据信息作为参数。待会有案例代码展示。 下面看看代码内容。第一个

    2024年01月18日
    浏览(53)
  • Vue中实现图片懒加载简单说明

    npm i vue-lazyload@1.2.6 import VueLazyload from \\\"vue-lazyload\\\"; 说明:main.js文件 说明:vue文件    

    2024年02月13日
    浏览(39)
  • Vue页面 - 大型图片加载慢解决途径

    解决图片加载慢的两种优化方式 两个内外尺寸一致的盒子,外层放置压缩图,内层放置高清图,高清图加载完成后铺盖压缩图即可 在不同阶段使用不同图片资源

    2024年02月16日
    浏览(34)
  • html和css中图片加载与渲染的规则是什么?

    浏览器渲染web页面的过程 解析html,构成dom树 2.加载css,构成样式规则树 3.加载js,解析js代码 4.dom树和样式树进行匹配,构成渲染树 5.计算元素位置进行页面布局 5.绘制页面,呈现到浏览器中 图片加载和渲染的过程 1.解析html,遇到 img 、 picture ,会加载图片,放入dom树中 2

    2024年02月08日
    浏览(36)
  • 【VUE】解决图片视频加载缓慢/首屏加载白屏的问题

      在 Vue3 项目中,有时候会出现图片视频加载缓慢、首屏加载白屏的问题 通常是由以下原因导致的: 图片或视频格式不当:如果图片或视频格式选择不当,比如选择了无损压缩格式,可能会导致文件大小过大,从而影响加载速度。 页面中同时加载了大量的图片和视频,导致

    2024年02月16日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包