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

对于图片过多的页面,为了加速页面加载速度,因此不少时候咱们须要将页面内未出如今可视区域内的图片先不作加载, 等到滚动到可视区域后再去加载。这样子对于页面加载性能上会有很大的提高,也提升了用户体验。javascript

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

1.安装插件java

npm install vue-lazyload --save-dev

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

import VueLazyload from 'vue-lazyload'

直接使用api

Vue.use(VueLazyload)

或者添加自定义选项dom

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

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

<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 forspa

(想要监听的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

 

至此,一个简单的图片懒加载就完成啦......

相关文章
相关标签/搜索