浅谈vue中使用图片懒加载vue-lazyload插件详细指南


Posted in Javascript onOctober 23, 2017

在vue中使用图片懒加载详细指南分享给大家。具体如下:

说明

当网络请求比较慢的时候,提前给这张图片添加一个像素比较低的占位图片,不至于堆叠在一块,或显示大片空白,让用户体验更好一点。

使用方式

使用vue的 vue-lazyload 插件

插件地址:https://www.npmjs.com/package/vue-lazyload

案例

demo: 懒加载案例demo

Installation 安装方式

npm

$ npm i vue-lazyload -D

CDN

CDN: https://unpkg.com/vue-lazyload/vue-lazyload.js

<script src="https://unpkg.com/vue-lazyload/vue-lazyload.js"></script>
<script>
 Vue.use(VueLazyload)
 ...
</script>

用法

main.js 在入口文件

import Vue from 'vue'
import App from './App.vue'
import VueLazyload from 'vue-lazyload' //引入这个懒加载插件

Vue.use(VueLazyload)

// 或者添加VueLazyload 选项
Vue.use(VueLazyload, {
 preLoad: 1.3,
 error: 'dist/error.png',
 loading: 'dist/loading.gif',
 attempt: 1
})

new Vue({
 el: 'body',
 components: {
  App
 }
})

在入口文件添加后,在组件任何地方都可以直接使用把 img 里的:src -> v-lazy

<div class="pic">
  <a href="#" rel="external nofollow" rel="external nofollow" ><img :src="'/static/img/' + item.productImage" alt=""></a>
</div>

把之前项目中img 标签里面的 :src 属性 改成 v-lazy 

<div class="pic">
  <a href="#" rel="external nofollow" rel="external nofollow" ><img v-lazy="'/static/img/' + item.productImage" alt=""></a>
</div>

参数选项说明

key description default options
preLoad proportion of pre-loading height 1.3 Number
error 当加载图片失败的时候 'data-src' String
loading 当加载图片成功的时候 'data-src' String
attempt 尝试计数 3 Number
listenEvents 想要监听的事件 ['scroll', 'wheel', 'mousewheel', 'resize', 'animationend', 'transitionend', 'touchmove'] Desired Listen Events
adapter 动态修改元素属性 { } Element Adapter
filter 图片监听或过滤器 { } Image listener filter
lazyComponent lazyload component false Lazy Component
dispatchEvent 触发dom事件 false Boolean
throttleWait throttle wait 200 Number
observer use IntersectionObserver false Boolean
observerOptions IntersectionObserver options { rootMargin: '0px', threshold: 0.1 } IntersectionObserver

想要监听的事件

您可以通过传递数组来配置想要使用vue - lazyload的事件

监听器的名字。

Vue.use(VueLazyload, {
 preLoad: 1.3,
 error: 'dist/error.png',
 loading: 'dist/loading.gif',
 attempt: 1,
 // the default is ['scroll', 'wheel', 'mousewheel', 'resize', 'animationend', 'transitionend']
 listenEvents: [ 'scroll' ]
})

如果您遇到这个插件重新设置加载的麻烦,这是很有用的

当你有某些动画和过渡的时候。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
模拟用户操作Input元素,不会触发相应事件
May 11 Javascript
Javascript 中介者模式实例
Dec 16 Javascript
jquery实现按Enter键触发事件示例
Sep 10 Javascript
javascript获取form里的表单元素的示例代码
Feb 14 Javascript
jQuery应用之jQuery链用法实例
Jan 19 Javascript
jQuery查找节点并获取节点属性的方法
Sep 09 Javascript
bootstrap导航、选项卡实现代码
Dec 28 Javascript
js模拟支付宝密码输入框
Apr 11 Javascript
Node.js学习教程之HTTP/2服务器推送【译】
Oct 31 Javascript
在vue中通过axios异步使用echarts的方法
Jan 13 Javascript
基于vue通用表单解决方案的思考与分析
Mar 16 Javascript
vue实现自定义H5视频播放器的方法步骤
Jul 01 Javascript
angularjs实现猜大小功能
Oct 23 #Javascript
详解在vue-cli项目中使用mockjs(请求数据删除数据)
Oct 23 #Javascript
angularjs实现天气预报功能
Jun 16 #Javascript
angular.js实现购物车功能
Oct 23 #Javascript
使用store来优化React组件的方法
Oct 23 #Javascript
node文件批量重命名的方法示例
Oct 23 #Javascript
详解vue 实例方法和数据
Oct 23 #Javascript
You might like
php打造属于自己的MVC框架
2012/03/07 PHP
PHP实现的MongoDB数据库操作类分享
2014/05/12 PHP
PHP查询大量数据内存耗尽问题的解决方法
2016/10/28 PHP
PHP的反射机制实例详解
2017/03/29 PHP
asp.net和asp下ACCESS的参数化查询
2008/06/11 Javascript
Jquery 设置标题的自动翻转
2009/10/03 Javascript
JavaScript高级程序设计 读书笔记之九 本地对象Array
2012/02/27 Javascript
js实现基于正则表达式的轻量提示插件
2015/08/29 Javascript
尝试动手制作javascript放大镜效果
2015/12/25 Javascript
jquery学习笔记之无new构建详解
2017/12/07 jQuery
vue使用element-ui的el-input监听不了回车事件的解决方法
2018/01/12 Javascript
vue通过路由实现页面刷新的方法
2018/01/25 Javascript
详解浏览器缓存和webpack缓存配置
2018/07/06 Javascript
用Object.prototype.toString.call(obj)检测对象类型原因分析
2018/10/11 Javascript
支付宝小程序自定义弹窗dialog插件的实现代码
2018/11/30 Javascript
如何使用 vue + d3 画一棵树
2018/12/03 Javascript
Node.js操作系统OS模块用法分析
2019/01/04 Javascript
微信小程序与webview交互实现支付功能
2019/06/07 Javascript
jquery操作checkbox的常用方法总结【附测试源码下载】
2019/06/10 jQuery
详解element-ui设置下拉选择切换必填和非必填
2019/06/17 Javascript
vue3修改link标签默认icon无效问题详解
2019/10/09 Javascript
JavaScript中this的学习笔记及用法整理
2020/02/17 Javascript
Vue为什么要谨慎使用$attrs与$listeners
2020/08/27 Javascript
jQuery实现查看图片功能
2020/12/01 jQuery
tensorflow 恢复指定层与不同层指定不同学习率的方法
2018/07/26 Python
解决Pycharm出现的部分快捷键无效问题
2018/10/22 Python
python 解压pkl文件的方法
2018/10/25 Python
matplotlib教程——强大的python作图工具库
2020/10/15 Python
2014政务公开实施方案
2014/02/19 职场文书
岗位竞聘演讲稿范文
2014/04/24 职场文书
奥巴马开学演讲稿
2014/05/15 职场文书
政风行风整改方案
2014/10/25 职场文书
技术员岗位职责范本
2015/04/11 职场文书
深入详解JS函数的柯里化
2021/06/09 Javascript
Java 语言中Object 类和System 类详解
2021/07/07 Java/Android
MySQL数据库10秒内插入百万条数据的实现
2021/11/01 MySQL