vue使用mint-ui实现下拉刷新和无限滚动的示例代码


Posted in Javascript onNovember 06, 2017

在开发web-app中,总会遇到v-for出来的li会有很多,当数据达几百上千条的时候,一起加载出来会造成用户体验很差的效果。
这时候我们可以使用无限滚动和下拉刷新来实现控制显示的数量,当刷新到底部的边界的时候会触发无限滚动的事件,再次加载一定数量的条目。

还是拿在项目中的功能来举栗子介绍。

vue使用mint-ui实现下拉刷新和无限滚动的示例代码

有个列表,几千条数据,做分页查询,限制每次显示查询20条,每次拉到最后20条边缘的时候,触发无限滚动,这时候会出现加载图标,继续加载后续20条数据,加载到最后的时候会提示数据“加载完毕”。

vue使用mint-ui实现下拉刷新和无限滚动的示例代码

项目的ui使用的mint-ui,所以使用的无限滚动也是mint-ui里面的,详细参考官方文档

接下来给大家介绍代码实现:

1、为元素添加 v-infinite-scroll 指令即可使用无限滚动。滚动该元素,当其底部与被滚动元素底部的距离小于给定的阈值(通过 infinite-scroll-distance 设置)时,绑定到 v-infinite-scroll 指令的方法就会被触发。

<!--ul里面几个scoller就是无限滚动的几个api-->
<ul class="mui-table-view" v-infinite-scroll="loadMore" infinite-scroll-disabled="moreLoading" infinite-scroll-distance="0" infinite-scroll-immediate-check="false">
 <!--li数据遍历循环部分-->
 <li class="mui-table-view-cell" v-for="item in list">
  <a class="mui-navigate-right">
   <span class="mui-pull-left">{{item.name}}</span>
   <span class="mui-pull-right">{{item.date.substring(0,10)}}</span>
  </a>
 </li>
 <!--底部判断是加载图标还是提示“全部加载”-->
 <li class="more_loading" v-show="!queryLoading">
  <mt-spinner type="snake" color="#00ccff" :size="20" v-show="moreLoading&&!allLoaded"></mt-spinner>
  <span v-show="allLoaded">已全部加载</span>
 </li>
</ul>

2、script部分

<script>
 export default {
  data() {
   return {
    //初始化无限加载相关参数
    queryLoading: false,
    moreLoading: false,
    allLoaded: false,
    totalNum: 0,
    pageSize: 20,
    pageNum: 1,
   }
  },
  computed: {
   params() {
    return{
     //这里先定义要传递给后台的数据
     //然后将每次请求20条的参数一起提交给后台
     pageSize: this.pageSize
     }
   }
  },
  methods: {
   //无限加载函数
   loadMore() {
    if(this.allLoaded){
     this.moreLoading = true;
     return;
    }
    if(this.queryLoading){
     return;
    }
    this.moreLoading = !this.queryLoading;
    this.pageNum++;
    this.$http.post("请求后台数据的接口",Object.assign({pageNum:this.pageNum},this.params)).then((res) => {
     if(res.sData && res.sData.list){
      this.list = this.list.concat(res.sData.list);
      this.allLoaded = this.debtList.length==this.totalNum;
     }
     this.moreLoading = this.allLoaded;
    });
   }
  },
 }
</script>

到这里就可以实现无限滚动了,这里结合了mint-ui的Infinite scroll和Spinner

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

Javascript 相关文章推荐
JavaScript高级程序设计
Dec 29 Javascript
Js从头学起(基本数据类型和引用类型的参数传递详细分析)
Feb 16 Javascript
jquery 中多条件选择器,相对选择器,层次选择器的区别
Jul 03 Javascript
JavaScript strike方法入门实例(给字符串加上删除线)
Oct 17 Javascript
Javascript中prototype属性实现给内置对象添加新的方法
May 14 Javascript
Web打印解决方案之普通报表打印功能
Aug 29 Javascript
JavaScript计算值然后把值嵌入到html中的实现方法
Oct 29 Javascript
Centos7 中安装 Node.js v4.4.4
Nov 03 Javascript
JavaScript设计模式之代理模式详解
Jun 09 Javascript
详解Vue.js分发之作用域槽
Jun 13 Javascript
利用jqprint插件打印页面内容的实现方法
Jan 09 Javascript
解决layui的table插件无法多层级获取json数据的问题
Sep 19 Javascript
JS实现分页浏览横向图片(类轮播)实例代码
Nov 06 #Javascript
Angular实现类似博客评论的递归显示及获取回复评论的数据
Nov 06 #Javascript
vue自定义过滤器创建和使用方法详解
Nov 06 #Javascript
Bootstrap 树控件使用经验分享(图文解说)
Nov 06 #Javascript
vue复合组件实现注册表单功能
Nov 06 #Javascript
基于vue组件实现猜数字游戏
May 28 #Javascript
vue路由嵌套的SPA实现步骤
Nov 06 #Javascript
You might like
php下的权限算法的实现
2007/04/28 PHP
php的curl实现get和post的代码
2008/08/23 PHP
ThinkPHP令牌验证实例
2014/06/18 PHP
yii2.0之GridView自定义按钮和链接用法
2014/12/15 PHP
Laravel 5框架学习之环境与配置
2015/04/08 PHP
PHP编程中尝试程序并发的几种方式总结
2016/03/21 PHP
yii2高级应用之自定义组件实现全局使用图片上传功能的方法
2016/10/08 PHP
PHP的RSA加密解密方法以及开发接口使用
2018/02/11 PHP
PHP xpath()函数讲解
2019/02/11 PHP
JavaScript写的一个自定义弹出式对话框代码
2010/01/17 Javascript
关于js中window.location.href,location.href,parent.location.href,top.location.href的用法与区别
2010/10/18 Javascript
javascript中with()方法的语法格式及使用
2014/08/04 Javascript
JavaScript中的alert()函数使用技巧详解
2014/12/29 Javascript
js获取字符串字节数方法小结
2015/06/09 Javascript
javascript跑马灯抽奖实例讲解
2020/04/17 Javascript
js实现hashtable的赋值、取值、遍历操作实例详解
2016/12/25 Javascript
基于element-ui组件手动实现单选和上传功能
2018/12/06 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【矩形情况】
2018/12/13 Javascript
Javascript的this详解
2019/03/23 Javascript
Python实现高效求解素数代码实例
2015/06/30 Python
Python解析json文件相关知识学习
2016/03/01 Python
python3+PyQt5图形项的自定义和交互 python3实现page Designer应用程序
2020/07/20 Python
Django ORM实现按天获取数据去重求和例子
2020/05/18 Python
详细分析Python collections工具库
2020/07/16 Python
用python对excel进行操作(读,写,修改)
2020/12/25 Python
DRF使用simple JWT身份验证的实现
2021/01/14 Python
HTML5实现WebSocket协议原理浅析
2014/07/07 HTML / CSS
萌新的HTML5 入门指南
2020/11/06 HTML / CSS
夏洛特和乔治婴儿和儿童时装精品店:Charlotte and George
2018/06/06 全球购物
手工社团活动方案
2014/02/17 职场文书
禁止酒驾标语
2014/06/25 职场文书
企业挂职心得体会
2014/09/10 职场文书
学生检讨书怎么写
2014/10/09 职场文书
师德先进个人材料
2014/12/20 职场文书
会议接待欢迎词范文
2015/01/26 职场文书
亮剑观后感500字
2015/06/05 职场文书