实现方法(使用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>
参数选项说明
至此,一个简单的图片懒加载就完成啦…
// 作者:gaochengxin,
//采纳请点赞谢谢
注释:
1、在使用vue懒加载加载图片的时候,发现在main.js引入图片时,发现图片路径找不到出错!!!
使用vue-cli脚手架快速生成的框架中,
src**同级目录**中有static文件夹
src**子文件夹**中有assets文件夹
在使用vue-lazyload,设置error或loading属性的图片路径时,
图片在assets文件夹,就需要使用require()进行引入。
Vue.use(lazyLoad, {
error: require('./assets/img/default-photo.png'),
loading: require('./assets/img/default-photo.png')
})
图片在static文件夹,就可以直接写路径了
Vue.use(lazyLoad, {
error: require('../static/img/default-photo.png'),
loading: require('../static/img/default-photo.png')
})
vue-lazyload是在main.js文件中引入,不会被webpack进行编译,src中的文件会被webpack编译,包括 assets,assets文件夹中的图片地址,会在编译过程中改变。因此vue-lazyload无法正确获得图片地址,就不 能显示图片了。