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 相关文章推荐
JQuery.uploadify 上传文件插件的使用详解 for ASP.NET
Jan 22 Javascript
jqPlot 基于jquery的画图插件
Apr 26 Javascript
jquery让返回的内容显示在特定div里(代码少而精悍)
Jun 23 Javascript
三种AngularJS中获取数据源的方式
Feb 02 Javascript
jQuery实现输入框邮箱内容自动补全与上下翻动显示效果【附demo源码下载】
Sep 20 Javascript
Angular2里获取(input file)上传文件的内容的方法
Sep 05 Javascript
JavaScript中递归实现的方法及其区别
Sep 12 Javascript
基于Vue 2.0的模块化前端 UI 组件库小结
Dec 21 Javascript
vue.js或js实现中文A-Z排序的方法
Mar 08 Javascript
关于Angularjs中自定义指令一些有价值的细节和技巧小结
Apr 22 Javascript
Vue中props的使用详解
Jun 15 Javascript
react 路由Link配置详解
Nov 11 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获取MAC地址的函数代码
2011/09/11 PHP
php生成圆角图片的方法
2015/04/07 PHP
php+ajax无刷新分页实例详解
2015/12/07 PHP
PHP-FPM运行状态的实时查看及监控详解
2016/11/18 PHP
深入理解PHP的远程多会话调试
2017/09/21 PHP
jQuery 研究心得 取得属性的值
2007/11/30 Javascript
理解Javascript_13_执行模型详解
2010/10/20 Javascript
JS模拟面向对象全解(二、类型与赋值)
2011/07/13 Javascript
读jQuery之十二 删除事件核心方法
2011/07/31 Javascript
JS字符串累加Array不一定比字符串累加快(根据电脑配置)
2012/05/14 Javascript
javascript版的in_array函数(判断数组中是否存在特定值)
2014/05/09 Javascript
IE浏览器IFrame对象内存不释放问题解决方法
2014/08/22 Javascript
Javascript实现Web颜色值转换
2015/02/05 Javascript
Jquery技巧(必须掌握)
2016/03/16 Javascript
JS之获取样式的简单实现方法(推荐)
2016/09/13 Javascript
JavaScript实现DOM对象选择器
2016/09/24 Javascript
jQuery实现鼠标跟随效果
2017/02/20 Javascript
js实现无缝滚动图
2017/02/22 Javascript
Vue.js学习记录之在元素与template中使用v-if指令实例
2017/06/27 Javascript
浅谈React和Redux的连接react-redux
2017/12/04 Javascript
angular json对象push到数组中的方法
2018/02/27 Javascript
nodejs中函数的调用实例详解
2018/10/31 NodeJs
解决layui 三级联动下拉框更新时回显的问题
2019/09/03 Javascript
在vue中使用vant TreeSelect分类选择组件操作
2020/11/02 Javascript
Python实现ssh批量登录并执行命令
2016/10/25 Python
Python中实现输入超时及如何通过变量获取变量名
2020/01/18 Python
白宫黑市官网:White House Black Market
2016/11/17 全球购物
联想印度官方网上商店:Lenovo India
2019/08/24 全球购物
应聘教师自荐信
2013/10/12 职场文书
如何写好优秀的创业计划书
2014/01/30 职场文书
《窗前的气球》教学反思
2014/04/07 职场文书
绘画专业自荐信
2014/07/04 职场文书
商铺门面租房协议书
2014/10/21 职场文书
预备党员2014年第四季度思想汇报范文
2014/10/25 职场文书
民事答辩状范本
2015/05/21 职场文书
《风娃娃》教学反思
2016/02/18 职场文书