基于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 相关文章推荐
JSDoc 介绍使用规范JsDoc的使用介绍
Feb 12 Javascript
Jquery的hover方法让鼠标经过li时背景变色
Sep 06 Javascript
页面按钮禁用与解除禁用的方法
Feb 19 Javascript
JavaScript学习笔记之Function对象
Jan 22 Javascript
javascript日期验证之输入日期大于等于当前日期
Dec 13 Javascript
AngularJS入门教程之表单校验用法示例
Nov 02 Javascript
浅谈DOM的操作以及性能优化问题-重绘重排
Jan 08 Javascript
js 监控iframe URL的变化实例代码
Jul 12 Javascript
require.js 加载过程与使用方法介绍
Oct 30 Javascript
解决layui checkbox 提交多个值的问题
Sep 02 Javascript
基于JS实现父组件的请求服务过程解析
Oct 14 Javascript
Vue 中获取当前时间并实时刷新的实现代码
May 12 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类
2006/10/09 PHP
奇怪的PHP引用效率问题分析
2012/03/23 PHP
php数组查找函数in_array()、array_search()、array_key_exists()使用实例
2014/04/29 PHP
CodeIgniter采用config控制的多语言实现根据浏览器语言自动转换功能
2014/07/18 PHP
php实现过滤表单提交中html标签的方法
2014/10/17 PHP
laravel实现简单用户权限的示例代码
2019/05/28 PHP
doctype后如何获得body.clientHeight的方法
2007/07/11 Javascript
javascript window.opener的用法分析
2010/04/07 Javascript
JS获取后台Cookies值的小例子
2013/03/04 Javascript
jquery中加载图片自适应大小主要实现代码
2013/08/23 Javascript
30个经典的jQuery代码开发技巧
2014/12/15 Javascript
JS数组操作(数组增加、删除、翻转、转字符串、取索引、截取(切片)slice、剪接splice、数组合并)
2016/05/20 Javascript
使用纯JS代码判断字符串中有多少汉字的实现方法(超简单实用)
2016/11/12 Javascript
jQuery实现的两种简单弹窗效果示例
2018/04/18 jQuery
jQuery中的for循环var与let的区别
2018/04/21 jQuery
vue-cli 默认路由再子路由选中下的选中状态问题及解决代码
2018/09/06 Javascript
js计算两个日期间的天数月的实例代码
2018/09/20 Javascript
使用 UniApp 实现小程序的微信登录功能
2020/06/09 Javascript
解决vue+webpack项目接口跨域出现的问题
2020/08/10 Javascript
解决Vue大括号字符换行踩的坑
2020/11/09 Javascript
[00:12]2018DOTA2亚洲邀请赛SOLO赛 MidOne是否中单第一人?
2018/04/05 DOTA
python使用itchat实现手机控制电脑
2018/02/22 Python
python列表使用实现名字管理系统
2019/01/30 Python
详解python中index()、find()方法
2019/08/29 Python
Python常用模块sys,os,time,random功能与用法实例分析
2020/01/07 Python
Python 如何实现访问者模式
2020/07/28 Python
css3图片边框border-image的用法
2017/06/30 HTML / CSS
HTML5 使用 sessionStorage 进行页面传值的方法
2018/07/02 HTML / CSS
毕业生个人求职信范例分享
2013/12/17 职场文书
九年级家长会邀请函
2014/01/15 职场文书
优秀共产党员先进事迹材料
2014/05/06 职场文书
2014年重阳节老干部座谈会局领导发言稿
2014/09/25 职场文书
领导班子在批评与自我批评座谈会上的发言
2014/09/28 职场文书
2015年医院后勤工作总结
2015/05/20 职场文书
2019年冬至:天冷暖人心的问候祝福语大全
2019/12/20 职场文书
nginx之queue的具体使用
2022/06/28 Servers