vue项目中实现图片懒加载的方法

对于图片过多的页面,为了加速页面加载速度,所以很多时候我们需要将页面内未出现在可视区域内的图片先不做加载, 等到滚动到可视区域后再去加载。这样子对于页面加载性能上会有很大的提升,也提高了用户体验。

实现方法(使用vue的vue-lazyload插件)

1.安装插件

npm install vue-lazyload --save-dev

2.在入口文件main.js中引入并使用

import VueLazyload from ‘vue-lazyload‘

直接使用

Vue.use(VueLazyload)

或者添加自定义选项

Vue.use(VueLazyload, {
preLoad: 1.3,
error: ‘dist/error.png‘,
loading: ‘dist/loading.gif‘,
attempt: 1
})

3.修改图片显示方式为懒加载(将 :src 属性直接改为v-lazy)

<a href="javascript:;"><img v-lazy="‘/static/img/‘ + item.productImage"></a>

参数选项说明

图片懒加载的简单效果已经实现了,然后就可以按这开发文档的api进行扩展了:

key description default options
preLoad proportion of pre-loading height(预加载高度比例) 1.3 Number
error src of the image upon load fail(图片路径错误时加载图片) ‘data-src‘ String
loading src of the image while loading(预加载图片) ‘data-src‘ String
attempt attempts count(尝试加载图片数量) 3 Number
listenEvents
events that you want vue listen for

(想要监听的vue事件)

默认[‘scroll‘]可以省略,

当插件跟页面中的动画或过渡等事件有冲突是,

可以尝试其他选项


[‘scroll‘(默认),

‘wheel‘,

‘mousewheel‘,

‘resize‘,

‘animationend‘,

‘transitionend‘,

‘touchmove‘]

Desired Listen Events
adapter
dynamically modify the attribute of element

(动态修改元素属性)

{ } Element Adapter
filter the image‘s listener filter(动态修改图片地址路径) { } Image listener filter
lazyComponent lazyload component false Lazy Component
dispatchEvent trigger the dom event false Boolean
throttleWait throttle wait 200 Number
observer use IntersectionObserver false Boolean
observerOptions IntersectionObserver options { rootMargin: ‘0px‘, threshold: 0.1 } IntersectionObserver

原文地址:https://www.cnblogs.com/xieli26/p/10057763.html

时间: 2024-10-13 10:37:11

vue项目中实现图片懒加载的方法的相关文章

【vue】vue-cli3构建项目中实现图片懒加载

前两天正好写了文章如何用实现图片懒加载[性能优化]JS实现图片懒加载,今天在使用vue构建项目的时候就遇到了要做图片懒加载的优化需要,本想把前两天的代码直接copy过来的,后来想查查看有没有更简便的方法,果不其然,vue中直接有插件可以使用,看了下实现时候的效果,实现原理都和原生js是一样的,vue果然真香! 接下来我们来讲vue-lazyload插件的使用: 1.安装插件 cnpm i vue-lazyload -S 2.入口文件main.js中配置: import Vue from 'vue

vue-cli项目中引入图片懒加载

1.全局安装vue-lazyload npm install vue-lazyload -g 2.在main.js配置文件引入 import VueLazyload from 'vue-lazyload' Vue.use(VueLazyload, { //预加载高度 preLoad: 1.3, //错误时显示的图片 error: '/static/about111.jpg', //图片加载中显示的图片 loading: '/static/img/loading.gif', //尝试加载次数 at

Vue实现一个图片懒加载插件

前言 图片懒加载是一个很常用的功能,特别是一些电商平台,这对性能优化至关重要.今天就用vue来实现一个图片懒加载的插件. 这篇博客采用"三步走"战略--Vue.use().Vue.direction.Vue图片懒加载插件实现,逐步实现一个Vue的图片懒加载插件. Vue.use() 就像开发jQuery插件要用$.fn.extent()一样,开发Vue插件我们要用Vue.use().其实就是官方内部实现的一个方法,供广大开发者灵活开发属于自己的插件.只需要按照约定好的规则开发就行. 用

vue 图片懒加载 vue-lazyload

在项目中,如果出现大图一时半会加载不出来 的情况确实很丑.如果是那种没有给定宽高 靠图片撑起来的等图片加载出来 再把内容挤下去的用户体验效果非常差. 在vue中 使用vue-lazyload可以实现图片懒加载 安装 npm install vue-lazyload --save 引用 main.js import vueLazy from 'vue-lazyload' Vue.use(vueLazy) index.vue <template> <div> <img v-laz

Vue 自定义图片懒加载指令v-lazyload

Vue是可以自定义指令的,最近学习过程中遇见了一个需要图片懒加载的功能,最后参考了别人的代码和思路自己重新写了一遍.以下将详细介绍如何实现自定义指令v-lazyload. 先看如何使用这个指令: <img v-lazyload="imageSrc" > imageSrc是要加载的图片的实际路径. 为了实现这个指令,我们首先单独建立一个文件,名字为lazyload.js.并填写基本的代码,如下: //Vue 图片懒加载,导出模块 export default (Vue , o

Vue图片懒加载

图片懒加载的原理 先将img标签中的src链接设为同一张图片(空白图片),将其真正的图片地址存储再img标签的自定义属性中(比如data-src).当js监听到该图片元素进入可视窗口时,即将自定义属性中的地址存储到src属性中,达到懒加载的效果.这样做能防止页面一次性向服务器响应大量请求导致服务器响应慢,页面卡顿或崩溃等问题. 实现步骤: 1.安装插件: npm install vue-lazyload --save-dev 2. main.js引入插件: import VueLazyLoad

使用 vant 的 v-lazy 实现图片 vue 在移动端的懒加载

官方文档:https://youzan.github.io/vant/#/zh-CN/lazyload 引入 Lazyload 是 Vue 指令,使用前需要对指令进行注册 import Vue from 'vue'; import { Lazyload } from 'vant'; // options 为可选参数,无则不传 Vue.use(Lazyload, options); 基本用法 将v-lazy指令的值设置为你需要懒加载的图片 <img v-for="img in imageLi

vue 图片懒加载

//Vue 图片懒加载export default (Vue , options = {})=>{ if(!Array.prototype.remove){ Array.prototype.remove = function(item){ if(!this.length) return var index = this.indexOf(item); if( index > -1){ this.splice(index,1); return this } } } var init = { laz

vue + vue-lazyload 实现图片懒加载

1.安装 npm i vue-lazyload -S 2.配置 main.js /***图片模板等懒加载 start ***/ import VueLazyload from 'vue-lazyload' // 404图片 import errImg from './assets/img/404.png' // loading图片 import loadingImg from './assets/img/loading-spin.svg' // 图片懒加载配置 Vue.use(VueLazylo