基于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 相关文章推荐
经典的带阴影的可拖动的浮动层
Jun 26 Javascript
jQuery对象的selector属性用法实例
Dec 27 Javascript
JavaScript闭包详解
Feb 02 Javascript
JS组件中bootstrap multiselect两大组件较量
Jan 26 Javascript
基于d3.js实现实时刷新的折线图
Aug 03 Javascript
jquery动态创建div与input的实例代码
Oct 12 Javascript
js模糊查询实例分享
Dec 26 Javascript
利用Angular.js编写公共提示模块的方法教程
May 28 Javascript
Ionic3 UI组件之Gallery Modal详解
Jun 07 Javascript
node错误处理与日志记录的实现
Dec 24 Javascript
JavaScript静态作用域和动态作用域实例详解
Jun 17 Javascript
VUE组件中的 Drawer 抽屉实现代码
Aug 06 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
在DC的漫画和电影中,蝙蝠侠的宿敌,小丑的真名是什么?
2020/04/09 欧美动漫
javascript使用call调用微信API
2014/12/15 Javascript
JavaScript中Function()函数的使用教程
2015/06/04 Javascript
js replace()去除代码中空格的实例
2017/02/14 Javascript
JS实现课堂随机点名和顺序点名
2017/03/09 Javascript
Angular 4.x中表单Reactive Forms详解
2017/04/25 Javascript
jQuery实现简单的手风琴效果
2020/04/17 jQuery
clipboard在vue中的使用的方法示例
2018/10/19 Javascript
微信小程序实现的3d轮播图效果示例【基于swiper组件】
2018/12/11 Javascript
JavaScript数组、json对象、eval()函数用法实例分析
2019/02/21 Javascript
仿vue-cli搭建属于自己的脚手架的方法步骤
2019/04/17 Javascript
Vue CLI3中使用compass normalize的方法
2019/05/30 Javascript
Emberjs 通过 axios 下载文件的方法
2019/09/03 Javascript
layui多iframe页面控制定时器运行的方法
2019/09/05 Javascript
Vue.js 实现地址管理页面思路详解(地址添加、编辑、删除和设置默认地址)
2019/12/11 Javascript
[52:03]DOTA2-DPC中国联赛 正赛 Ehome vs iG BO3 第三场 1月31日
2021/03/11 DOTA
python模块restful使用方法实例
2013/12/10 Python
Python编程入门之Hello World的三种实现方式
2015/11/13 Python
Python实现求笛卡尔乘积的方法
2017/09/16 Python
python队列通信:rabbitMQ的使用(实例讲解)
2017/12/22 Python
详解python3中zipfile模块用法
2018/06/18 Python
python实现支付宝转账接口
2019/05/07 Python
使用python 写一个静态服务(实战)
2019/06/28 Python
python中类的输出或类的实例输出为这种形式的原因
2019/08/12 Python
使用Python实现 学生学籍管理系统
2019/11/26 Python
python设置表格边框的具体方法
2020/07/17 Python
Cpython解释器中的GIL全局解释器锁
2020/11/09 Python
HTML5进度条特效
2014/12/18 HTML / CSS
英国厨房与餐具用品为主的设计品牌:Joseph Joseph
2018/04/26 全球购物
英国奢侈品在线精品店:Hervia
2020/09/03 全球购物
工业设计专业推荐信
2013/10/29 职场文书
自荐信的两点禁忌
2013/10/30 职场文书
简历中个人求职的自我评价模板
2013/11/29 职场文书
2014年小学植树节活动方案
2014/03/02 职场文书
考试作弊万能检讨书
2014/10/19 职场文书
2015年女职工工作总结
2015/05/15 职场文书