更详细的内容,请移步vue
npm install vue-lazyload --save //注册插件 import vueLazyload from 'vue-lazyload' Vue.use(vueLazyload); //在须要懒加载的图片上 <img v-lazy="imgUrl">
注册插件的时候,是能够传入第二个配置参数的git
Vue.use(vueLazyload,{})
可选的参数以下:
preLoad:类型Number,默认1.3. 表示lazyload的元素距离页面底部距离的百分比.计算值为(preload - 1).
attempt:图片加载失败后的重试次数.默认为3.
error:类型string.图片加载失败后的显示的失败图片路径.
loading:类型string.图片正在加载中显示的loading图片的路径.
listenEvents:类型array.默认['scroll', 'wheel', 'mousewheel', 'resize', 'animationend', 'transitionend', 'touchmove'].便是在监听上述事件中,判断图片是否在preload的位置.若是你不想在那么多事件中判断,能够指定一个或者几个.例如若是你给这个属性只指定['touchmove'].那么scroll 屏幕不会加载图片,只有手指滑动屏幕才会加载图片.github
adapter:注册img 的loading,loaded,error三个状态的回调函数,参数会暴露懒加载的img元素,能够对其进行操做.
filter: img未加载以前,解析到src 的时候注册的回调函数.能够在加载图片以前,对src进行修改.注册在filter下的全部的函数都会执行
lazyComponent:类型Boolean.是否启用懒加载组件.<lazy-component>组件中的内容只有在出如今preload的位置中才会加载组件.这个lazyloadComponent 组件有个缺点就是,组件在加载前是什么都不渲染的,这样子的话,有可能会影响布局,以及加载前到加载后的切换很差,有点突兀和生硬.挖坑(vue懒加载组件)npm
observer:是否启用IntersectionObserver,这个api有兼容问题
observerOptions:默认{ rootMargin: '0px', threshold: 0.1 } 主要是我对这个pai不熟,按照vue-lazyload的说法是开启以后,对不少节点的状况会优化性能.挖坑吧api