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 检测键盘按键信息及键码值对应介绍
Jan 03 Javascript
js关闭父窗口时关闭子窗口
Apr 01 Javascript
前端必备神器 Snap.svg 弹动效果
Nov 10 Javascript
jquery 根据name名获取元素的value值
Feb 27 Javascript
Backbone.js的Hello World程序实例
Jun 19 Javascript
基于JavaScript实现弹出框效果
Feb 19 Javascript
jQuery获取元素父节点的方法
Jun 21 Javascript
JS遍历页面所有对象属性及实现方法
Aug 01 Javascript
基于BootStrap的文本编辑器组件Summernote
Oct 27 Javascript
微信小程序实现动态设置placeholder提示文字及按钮选中/取消状态的方法
Dec 14 Javascript
3分钟读懂移动端rem使用方法(推荐)
May 06 Javascript
小程序自定义导航栏兼容适配所有机型(附完整案例)
Apr 26 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中将时间差转换为字符串提示的实现代码
2011/08/08 PHP
Laravel 5.3 学习笔记之 配置
2016/08/28 PHP
浅谈laravel数据库查询返回的数据形式
2019/10/21 PHP
HTML中事件触发列表与解说
2007/07/09 Javascript
javascript 面向对象的JavaScript类
2010/05/04 Javascript
禁止ajax缓存获取程序最新数据的方法
2013/11/19 Javascript
JavaScript中的公有、私有、特权和静态成员用法分析
2014/11/20 Javascript
JavaScript通过字典进行字符串翻译转换的方法
2015/03/19 Javascript
再次谈论Javascript中的this
2016/06/23 Javascript
react-native组件中NavigatorIOS和ListView结合使用的方法
2017/09/30 Javascript
jQuery zTree搜索-关键字查询 递归无限层功能实现代码
2018/01/25 jQuery
小程序红包雨的实现示例
2019/02/19 Javascript
javascript实现简易的计算器
2020/01/17 Javascript
javascript实现拖拽碰撞检测
2020/03/12 Javascript
ES6中的类(Class)示例详解
2020/12/09 Javascript
基于JavaScript实现随机点名器
2021/02/25 Javascript
[01:36:19]Secret vs NB 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Python操作MySQL数据库的三种方法总结
2018/01/30 Python
python基础教程项目五之虚拟茶话会
2018/04/02 Python
用sqlalchemy构建Django连接池的实例
2019/08/29 Python
keras实现基于孪生网络的图片相似度计算方式
2020/06/11 Python
Python如何操作docker redis过程解析
2020/08/10 Python
Kneipp克奈圃美国官网:德国百年精油配方的传承
2018/02/07 全球购物
英国Flybe航空官网:欧洲最大的独立支线廉价航空公司
2019/07/15 全球购物
大码女装:Ulla Popken
2019/08/06 全球购物
网络方面基础面试题
2012/11/16 面试题
软件工程师岗位职责
2013/11/16 职场文书
2014年中班元旦活动方案
2014/02/14 职场文书
党员批评与自我批评发言
2014/10/02 职场文书
一年级语文上册复习计划
2015/01/17 职场文书
出国留学单位推荐信
2015/03/26 职场文书
刑事附带民事代理词
2015/05/25 职场文书
2016年春季运动会通讯稿
2015/11/25 职场文书
Python操作CSV格式文件的方法大全
2021/07/15 Python
python 进阶学习之python装饰器小结
2021/09/04 Python
JavaScript实现一键复制内容剪贴板
2022/07/23 Javascript