基于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 相关文章推荐
jValidate 基于jQuery的表单验证插件
Dec 12 Javascript
Jquery cookie操作代码
Mar 14 Javascript
JavaScript学习点滴 call、apply的区别
Oct 22 Javascript
ExtJS 入门
Oct 29 Javascript
JS获取键盘上任意按键的值(实例代码)
Nov 12 Javascript
调用HttpHanlder的几种返回方式小结
Dec 20 Javascript
jquery的ajax跨域请求原理和示例
May 08 Javascript
JavaScript中实现PHP的打乱数组函数shuffle实例
Oct 11 Javascript
jQuery中position()方法用法实例
Jan 16 Javascript
js仿京东轮播效果 选项卡套选项卡使用
Jan 12 Javascript
详解微信小程序 template添加绑定事件
Jun 23 Javascript
react实现antd线上主题动态切换功能
Aug 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
浅谈COOKIE和SESSION区别
2015/07/19 PHP
取得传值的函数
2006/10/27 Javascript
可实现多表单提交的javascript函数
2007/08/01 Javascript
Jquery上传插件 uploadify v3.1使用说明
2012/06/18 Javascript
鼠标移动到图片名上,显示图片的简单实例
2013/07/14 Javascript
jQuery中prev()方法用法实例
2015/01/08 Javascript
JS通过ajax动态读取xml文件内容的方法
2015/03/24 Javascript
基于jQuery.validate及Bootstrap的tooltip开发气泡样式的表单校验组件思路详解
2016/07/18 Javascript
JavaScript与JQUERY获取元素的宽、高和位置
2017/02/26 Javascript
jQuery UI Grid 模态框中的表格实例代码
2017/04/01 jQuery
javaScript实现滚动条事件详解
2020/03/24 Javascript
AngularJS使用ng-repeat遍历二维数组元素的方法详解
2017/11/11 Javascript
vue中实现在外部调用methods的方法(推荐)
2018/02/08 Javascript
nodejs(officegen)+vue(axios)在客户端导出word文档的方法
2018/07/31 NodeJs
基于jQuery ztree实现表格风格的树状结构
2018/08/31 jQuery
vue+element 模态框表格形式的可编辑表单实现
2019/06/07 Javascript
详解vue 自定义组件使用v-model 及探究其中原理
2019/10/11 Javascript
vue-cli3.X快速创建项目的方法步骤
2019/11/14 Javascript
python实现通过shelve修改对象实例
2014/09/26 Python
python操作mongodb根据_id查询数据的实现方法
2015/05/20 Python
python对象及面向对象技术详解
2016/07/19 Python
Python+django实现简单的文件上传
2016/08/17 Python
django请求返回不同的类型图片json,xml,html的实例
2018/05/22 Python
python3.6.3+opencv3.3.0实现动态人脸捕获
2018/05/25 Python
浅谈python标准库--functools.partial
2019/03/13 Python
python 删除excel表格重复行,数据预处理操作
2020/07/06 Python
Django contrib auth authenticate函数源码解析
2020/11/12 Python
世界最大的海报和艺术印刷商店:AllPosters.com
2017/02/01 全球购物
华为的Java面试题
2014/03/07 面试题
Unix里面如何在后台运行程序
2016/10/14 面试题
建筑工程毕业生自我鉴定
2014/01/14 职场文书
销售行政专员岗位职责
2014/06/10 职场文书
建筑节能汇报材料
2014/08/22 职场文书
影视广告专业求职信
2014/09/02 职场文书
在校学生证明格式
2015/06/24 职场文书
求职信如何撰写?
2019/05/22 职场文书