基于Vue的延迟加载插件vue-view-lazy


Posted in Javascript onMay 21, 2018

基于vue的懒加载插件

目的:图片或者其他资源进入可视区域后加载

安装使用

  1. 直接下载dist目录下的vue-view-lazy.min.js使用
  2. 使用npm安装

直接使用

<div id="app">
  <span v-view-lazy @model="handleModel"></span>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>
<script src="./dist/vue-view-lazy.min.js"></script>
<script>
  Vue.use(vViewLazy.default,{});
  new Vue({
    el:'#app',
    data:{
      msg:'数据'
    },
    methods:{
      handleModel(){
        console.log('出现了');
      },
    },
  })
</script>

npm:

$ npm install --save-dev vue-view-lazy

引入vue-view-lazy

.main文件

import vView from 'vue-view-lazy'
Vue.use(vView,{
  error:'../../static/images/loading.png',
  loading:'../../static/images/loading.gif',
});

懒加载图片

.vue文件

<template>
  <ul id='img'>
    <li class="in" v-for="(item,i) in imgs" :key="i">
      <img src="#" alt="图片" v-view-lazy="item.src">
    </li>
  </ul>
</template>

<script>
  export default {
    data () {
      return {
        msg: 'Welcome to Your Vue.js App',
        imgs:[
          {src:'../../static/images/img1.jpg'},
          {src:'../../static/images/img2.png'},
          {src:'../../static/images/img2.jpg'},
          {src:'../../static/images/img3.jpg'},
          {src:'../../static/images/img4.jpg'},
          {src:'../../static/images/img5.jpeg'}, 
        ]
      }
    },
    mounted(){
    },
  }
</script>
<style scoped>
  ...
</style>

懒加载数据

.vue文件

<template>
  <div>
    <!--@model自定义事件是在该dom在第一次出现在视口内时触发的方法-->
    <!--v-view-lazy='method' 或 v-view-lazy='(e)=>method(e,...arg)'-->
    <div class="cnt" v-for="(v,i) in msg" :key="i" v-view-lazy @model="(e)=>getAjaxContent(e,v.msg)">
      loading...
    </div>
    <div class="cnt" v-for="(v,i) in msg" :key="i" v-view-lazy @model="getAjaxContent()">
      loading...
    </div>
  </div>
</template>

<script>
  export default {
    data(){
      return{
        msg:[]
      }
    },
    mounted(){
      fetch('http://localhost:3000/test').then(res=>res.json()).then(res=>{
        this.msg = res;
      })
    },
    methods:{
      getAjaxContent(event,msg){
        event.innerText = msg
      },
    }
  }
</script>

<style scoped>
  .cnt {
    /*background: #ececec;*/
    height: 500px;
    margin-bottom: 50px;
  }
</style>

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

Javascript 相关文章推荐
Web层改进II-用xmlhttp 无声息提交复杂表单
Jan 22 Javascript
javascript 常用代码技巧大收集
Feb 25 Javascript
JavaScript加强之自定义callback示例
Sep 21 Javascript
深入剖析JavaScript中的函数currying柯里化
Apr 29 Javascript
JS与jQuery实现隔行变色的方法
Sep 09 Javascript
jQuery特殊符号转义的实现
Nov 30 Javascript
JavaScript触发onScroll事件的函数节流详解
Dec 14 Javascript
javascript 实现文本使用省略号替代(超出固定高度的情况)
Feb 21 Javascript
vue左侧菜单,树形图递归实现代码
Aug 24 Javascript
JavaScript基于数组实现的栈与队列操作示例
Dec 22 Javascript
vue基础之v-bind属性、class和style用法分析
Mar 11 Javascript
在Chrome DevTools中调试JavaScript的实现
Apr 07 Javascript
jQuery获取随机颜色的实例代码
May 21 #jQuery
JS实现常见的查找、排序、去重算法示例
May 21 #Javascript
vue组件jsx语法的具体使用
May 21 #Javascript
关于vue的语法规则检测报错问题的解决
May 21 #Javascript
JS实现520 表白简单代码
May 21 #Javascript
了解ESlint和其相关操作小结
May 21 #Javascript
vue2.0 实现导航守卫(路由守卫)
May 21 #Javascript
You might like
php empty函数判断mysql表单是否为空
2010/04/12 PHP
php实现aes加密类分享
2014/02/16 PHP
php获取英文姓名首字母的方法
2015/07/13 PHP
PHP邮箱验证示例教程
2016/06/01 PHP
script的async属性以非阻塞的模式加载脚本
2013/01/15 Javascript
JavaScript中document.forms[0]与getElementByName区别
2015/01/21 Javascript
nodejs 实现钉钉ISV接入的加密解密方法
2017/01/16 NodeJs
Node.js使用NodeMailer发送邮件实例代码
2017/03/06 Javascript
Vue 进入/离开动画效果
2017/12/26 Javascript
nginx部署访问vue-cli搭建的项目的方法
2018/02/12 Javascript
vue 父组件调用子组件方法及事件
2018/03/29 Javascript
利用vue-i18n实现多语言切换效果的方法
2019/06/19 Javascript
[02:03]DOTA2亚洲邀请赛 HGT战队出场宣传片
2015/02/07 DOTA
[52:41]OG vs IG 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/20 DOTA
[03:43]TI9战队采访——PSG.LGD
2019/08/22 DOTA
python中使用xlrd、xlwt操作excel表格详解
2015/01/29 Python
Python的Flask框架中实现分页功能的教程
2015/04/20 Python
python使用Pycharm创建一个Django项目
2018/03/05 Python
python的sorted用法详解
2019/06/25 Python
Python使用QQ邮箱发送邮件实例与QQ邮箱设置详解
2020/02/18 Python
pycharm 关掉syntax检查操作
2020/06/09 Python
python爬取音频下载的示例代码
2020/10/19 Python
Python爬虫之Selenium多窗口切换的实现
2020/12/04 Python
css3中单位px,em,rem,vh,vw,vmin,vmax的区别及浏览器支持情况
2016/12/06 HTML / CSS
html5/css3响应式页面开发总结
2018/10/16 HTML / CSS
新闻系毕业生推荐信
2013/11/16 职场文书
大学生职业生涯规划范文
2014/01/08 职场文书
婚礼答谢宴主持词
2014/03/14 职场文书
授权委托书样本
2014/04/03 职场文书
期中考试反思800字
2014/05/01 职场文书
教师演讲稿开场白
2014/08/25 职场文书
会计学习心得体会
2014/09/09 职场文书
单位车辆管理制度
2015/08/05 职场文书
互联网创业商业模式以及赚钱法则有哪些?
2019/10/12 职场文书
2021年国产动漫公司排行前十名,玄机科技上榜,第二推出过铠甲勇士
2022/03/18 杂记
MySQL中dd::columns表结构转table过程及应用详解
2022/09/23 MySQL