vue v-lazy官方API:https://github.com/hilongjw/vue-lazyload


1.安装插件

1
npm install vue-lazyload --save

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

1
2
3
4
5
6
import VueLazyload from 'vue-lazyload'

Vue.use(VueLazyload, {
loading: require('img/loading.png'),//加载中图片,一定要有,不然会一直重复加载占位图
error: require('img/error.png') //加载失败图片
});

3.修改图片显示方式为懒加载

vue文件中将需要懒加载的图片绑定 v-bind:src 修改为 v-lazy

1
<img class="item-pic" v-lazy="newItem.picUrl"/>

img:

1
<img v-lazy="'/static/img/' + item.productImage" :key="'/static/img/' +item.productImage"> //将 :src 属性直接改为v-lazy, :key是为了防止刷新页面或图片更改时图片不更新

背景图:

1
<div style="width:100px;height:100px;" v-lazy:background-image="{src: item.imgpath}"></div>

v-html,如从后台获取的富文本字符串中图片:(用replace将src替换为data-src)

1
2
3
4
5
<div v-lazy-container="{ selector: 'img', error: 'xxx.jpg', loading: 'xxx.jpg' }">
<img data-src="//domain.com/img1.jpg">
<img data-src="//domain.com/img2.jpg">
<img data-src="//domain.com/img3.jpg">
</div>