基于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 相关文章推荐
纯JavaScript实现的完美渐变弹出层效果代码
Apr 02 Javascript
jquery ui dialog实现弹窗特效的思路及代码
Aug 03 Javascript
初步了解javascript面向对象
Nov 09 Javascript
一步一步封装自己的HtmlHelper组件BootstrapHelper(三)
Sep 14 Javascript
微信小程序 Windows2008 R2服务器配置TLS1.2方法
Dec 05 Javascript
详解jQuery uploadify文件上传插件的使用方法
Dec 16 Javascript
快速入门Vue
Dec 19 Javascript
Javascript中for循环语句的几种写法总结对比
Jan 23 Javascript
Vue.js组件通信的几种姿势
Oct 23 Javascript
Vue3.0结合bootstrap创建多页面应用
May 28 Javascript
解决vue-cli项目开发运行时内存暴涨卡死电脑问题
Oct 29 Javascript
VUEX-action可以修改state吗
Nov 19 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下编码转换函数mb_convert_encoding与iconv的使用说明
2009/12/16 PHP
PHP设计模式之装饰者模式
2012/02/29 PHP
使用cookie实现统计访问者登陆次数
2013/06/08 PHP
使用GDB调试PHP代码,解决PHP代码死循环问题
2015/03/02 PHP
thinkphp5.1 文件引入路径问题及注意事项
2018/06/13 PHP
php把文件设置为插件的技巧方法
2020/02/03 PHP
php实现根据身份证获取精准年龄
2020/02/26 PHP
主页面中的两个iframe实现鼠标拖动改变其大小
2013/04/16 Javascript
详解Bootstrap按钮
2016/01/04 Javascript
微信小程序 数据绑定及运算的简单实例
2017/09/20 Javascript
详解Webpack实战之构建 Electron 应用
2017/12/25 Javascript
vue.js 微信支付前端代码分享
2018/02/10 Javascript
Vue.directive 自定义指令的问题小结
2018/03/04 Javascript
Vue项目中使用better-scroll实现一个轮播图自动播放功能
2018/12/03 Javascript
nodejs中request库使用HTTPS代理的方法
2019/04/30 NodeJs
浅谈一种让小程序支持JSX语法的新思路
2019/06/16 Javascript
微信小程序商品详情页底部弹出框
2019/11/22 Javascript
Vue请求java服务端并返回数据代码实例
2019/11/28 Javascript
[08:44]DOTA2发布会群星聚首 我们都是刀塔人
2014/03/21 DOTA
[50:20]DOTA2上海特级锦标赛主赛事日 - 5 总决赛Liquid VS Secret第四局
2016/03/06 DOTA
[56:46]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 VP vs Effect
2018/04/01 DOTA
Python中zip()函数用法实例教程
2014/07/31 Python
python pcm音频添加头转成Wav格式文件的方法
2019/01/09 Python
Python3.5内置模块之os模块、sys模块、shutil模块用法实例分析
2019/04/27 Python
Python读取stdin方法实例
2019/05/24 Python
python多线程与多进程及其区别详解
2019/08/08 Python
化验室技术员岗位职责
2013/12/24 职场文书
电厂职工自我鉴定
2014/02/20 职场文书
经济信息系毕业生自荐信范文
2014/03/15 职场文书
美术指导助理求职信
2014/04/20 职场文书
单方离婚协议书范本2014
2014/10/28 职场文书
毕业生自荐材料范文
2014/12/30 职场文书
小学生心理健康活动总结
2015/05/08 职场文书
幼儿园新生开学寄语
2015/05/27 职场文书
活动宣传稿范文
2015/07/23 职场文书
python随机打印成绩排名表
2021/06/23 Python