当前位置:首页 > 技术分析 > 正文内容

Vue中实现图片懒加载,Vue2、Vue3写法

ruisui884周前 (03-31)技术分析15

在HTML中,图片懒加载是一种性能优化技术,它可以提升网页的加载速度。原理是将图片的加载延迟到用户真正需要看到图片的时候再加载,而不是在网页加载完毕后就立即加载所有图片。这样做的好处是减少了网页加载时的带宽占用,提升了用户体验。

Vue2图片懒加载

使用 vue-lazyload 插件来实现 Vue 中的图片懒加载非常简单,只需要简单的几步即可实现。

首先,你需要在项目中安装 vue-lazyload[1] 插件。

npm install vue-lazyload

然后,在你的 Vue 项目的入口文件(例如 main.js)中引入 vue-lazyload 并注册。

import Vue from 'vue'
import VueLazyLoad from 'vue-lazyload'
Vue.use(VueLazyLoad)

接下来,你就可以在你的组件中使用 v-lazy 指令来实现图片懒加载了。



<script>
export default {
  data () {
    return {
      imageUrl: 'https://example.com/image.jpg'
    }
  }
}
</script>

v-lazy 指令接受一个表达式作为参数,这个表达式应该返回一个图片的 URL。当图片进入可视区域时,vue-lazyload 会自动将图片的 src 属性替换为图片的真实 URL,从而实现图片懒加载的效果。

除了 v-lazy 指令,你还可以使用 LazyLoad 组件来实现图片懒加载。



<script>
import LazyLoad from 'vue-lazyload'

export default {
  components: {
    LazyLoad
  },
  data () {
    return {
      placeholderUrl: 'https://example.com/placeholder.jpg',
      imageUrl: 'https://example.com/image.jpg'
    }
  }
}
</script>

在使用 vue-lazyload 时,你可能需要注意一些事项。

  • 在使用 v-lazy 指令时,你应该在指令的参数中使用一个表达式,而不是一个字符串。如果你使用的是字符串,那么 vue-lazyload 将无法正常工作。
  • 如果你使用 LazyLoad 组件,那么你应该在 img 标签中使用 data-src 属性来指定图片的真实 URL,而不是 src 属性。vue-lazyload 会监听 data-src 属性的变化,并自动将其替换为真实的 URL。
  • 如果你希望在图片加载失败时显示一张备用图片,你可以使用 vue-lazyload 的 error 和 loading 选项。

例如:



<script>
import LazyLoad from 'vue-lazyload'

export default {
  components: {
    LazyLoad
  },
  data () {
    return {
      errorUrl: 'https://example.com/error.jpg',
      loadingUrl: 'https://example.com/loading.jpg',
      placeholderUrl: 'https://example.com/placeholder.jpg',
      imageUrl: 'https://example.com/image.jpg'
    }
  }
}
</script>

error 选项指定了加载失败时显示的图片 URL,loading 选项指定了图片正在加载时显示的图片 URL。

你也可以使用 vue-lazyload 的全局配置来设置这些选项。

import Vue from 'vue'
import VueLazyLoad from 'vue-lazyload'
Vue.use(VueLazyLoad, {
  error: 'https://example.com/error.jpg',
loading: 'https://example.com/loading.jpg'
})

这样,所有使用 vue-lazyload 的图片都会使用 error 和 loading 选项指定的图片。 你也可以在使用 LazyLoad 组件时单独为每张图片设置 error 和 loading 选项。

Vue3图片懒加载

在 Vue3 中使用图片懒加载,您可以使用 vue3-lazyload[2]这个插件。

首先,您需要安装这个插件:

npm install vue3-lazyload

然后,在您的 Vue 应用程序的根级别注册插件:

import { createApp } from 'vue';
import Lazyload from 'vue3-lazyload';
const app = createApp({
  // ...
});
app.use(Lazyload);

接下来,您可以在模板中使用 v-lazy 指令来延迟加载图像:



<script>
export default {
  data() {
    return {
      imageUrl: 'https://example.com/image.jpg',
    };
  },
};
</script>

您还可以提供一些可选的选项,例如加载中的占位符图像和加载失败的占位符图像:


请注意,这个插件只能在 Vue3 中使用。

vue3-lazyload 的全局配置

import VueLazyLoad from 'vue3-lazyload'
import { requireErrorImg } from '@/utils'
app.use(VueLazyLoad, {
    error: requireErrorImg(),
})

参考资料

[1]vue-lazyload: https://www.npmjs.com/package/vue-lazyload

[2]vue3-lazyload: https://www.npmjs.com/package/vue3-lazyload

往期回顾

JS复制Object对象的几种方式以及性能对比

修复Element等框架二次确认点击过快导致多次情况问题

用ChatGPT打造个人创业赚钱新奇兵器


版权声明:本文为「诚哥博客」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:
https://www.chengzz.com/924.html

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/3181.html

分享给朋友:

“Vue中实现图片懒加载,Vue2、Vue3写法” 的相关文章

79.idea中git合并分支操作分享

文章目录前言1.fetch的操作2.合并最新代码到当前的开发分支3.解决冲突4.分支合并:5.完成代码合并总结前言git的操作在日产的工作中也非常重要,团队化的代码管理,每次如果代码被别人覆盖或者自己的代码不能提交到服务器那是灾难性的结果,本篇进行一篇分享来总结下idea中git的操作帮助java开...

10分钟搞定gitlab-ci自动化部署

gitlab-ci 是持续集成工具/自动化部署工具,类似 jenkins。持续集成 是将代码集成到共享存储库并尽可能早地自动构建/测试每个更改的实践 - 通常一天几次。概述在编码完成时都会进行打包发布过程,如果每次都手动操作这一步骤就会浪费时间,效率低下。所以就有了持续集成。准备事项请提前安装以下软...

K8s里我的容器到底用了多少内存?

作者:frostchen导语 Linux下开发者习惯在物理机或者虚拟机环境下使用top和free等命令查看机器和进程的内存使用量,近年来越来越多的应用服务完成了微服务容器化改造,过去查看、监控和定位内存使用量的方法似乎时常不太奏效。如果你的应用程序刚刚迁移到K8s中,经常被诸如以下问题所困扰:容器的...

内存问题探微

这篇文章是我在公司 TechDay 上分享的内容的文字实录版,本来不想写这么一篇冗长的文章,因为有不少的同学问是否能写一篇相关的文字版,本来没有的也就有了。说起来这是我第二次在 TechDay 上做的分享,四年前第一届 TechDay 不知天高地厚,上去讲了一个《MySQL 最佳实践》,现在想起来那...

别让“跑焦”毁所有!仅需这一项设置,即可显著改善镜头对焦精度

我常常会收到一些摄影爱好者的私信,也一直在努力的帮助大家解决更多摄影中常见问题。在我收到的所有问题中。有一个问题是最麻烦的,那就是“为什么我的图像看起来模糊?”。这个问题几乎每个人都遇到过,究其原因可以说是多种多样相对复杂。起初我一直认为是对焦问题所导致,也就有了我之前所写的“后按对焦”以及“对焦模...

Vue从入门到实践 丨Vue-router基本使用

1. 什么是 vue-routervue-router 是 vue.js 官方给出的路由解决方案。它只能结合 vue 项目进行使用,能够轻松的管理 SPA 项目中组件的切换。vue-router 的官方文档地址:https://router.vuejs.org/zh/2. vue-router 安装...