vue实现的上拉加载更多数据/分页功能示例


Posted in Javascript onMay 25, 2019

本文实例讲述了vue实现的上拉加载更多数据/分页功能。分享给大家供大家参考,具体如下:

加载状态

<div v-if='has_log == 0'>
   <load-more tip="上拉加载" :show-loading="false" background-color="#fbf9fe"></load-more>
  </div>
  <div v-if='has_log == 1'>
   <load-more tip="正在加载" :show-loading="true"></load-more>
  </div>
  <div v-if='has_log == 2'>
    <load-more tip="没有更多数据了" :show-loading="false" background-color="#fbf9fe"></load-more>
  </div>

js

export default {
 name: '',
 data () {
  return {
   list: [],
   now_item: '',
   current_index: 0,
   list_param: {page: 1},
   no_data: false,
   has_log: 0
  }
 },
 components: {
  XInput
 },
 created () {
  this.get('/api/index/index', this.list_param).then((data) => {
   this.list = data.data.data
   this.list_param.page += 1
  })
  window.addEventListener('scroll', this.onScroll)
 },
 methods: {
  onScroll () {
   this.has_log = 1
   let innerHeight = document.querySelector('#app').clientHeight
   let outerHeight = document.documentElement.clientHeight
   let scrollTop = document.documentElement.scrollTop
   // console.log(innerHeight + ' ' + outerHeight + ' ' + scrollTop)
   // console.log(outerHeight + scrollTop - 30)
   // console.log(innerHeight)
   if (outerHeight + scrollTop === innerHeight + 57) {
    if (this.no_data === true) {
     this.has_log = 2
     return false
    }
    this.get('/api/index/index', this.list_param).then((data) => {
     if (data.data.data.length > 0) {
      this.list = [...this.list, ...data.data.data]
      this.list_param.page = this.list_param.page + 1
      this.has_log = 0
     } else {
      this.has_log = 2
      this.no_data = true
     }
    })
   }
  }
 }
}

希望本文所述对大家vue.js程序设计有所帮助。

Javascript 相关文章推荐
十个迅速提升JQuery性能让你的JQuery跑得更快
Dec 10 Javascript
浅析Js中的单引号与双引号问题
Nov 06 Javascript
表单验证正则表达式实例代码详解
Nov 09 Javascript
今天抽时间给大家整理jquery和ajax的相关知识
Nov 17 Javascript
JS获取浏览器地址栏的多个参数值的任意值实例代码
Jul 24 Javascript
在vue中安装使用vux的教程详解
Sep 16 Javascript
微信小程序实现多选删除列表数据功能示例
Jan 15 Javascript
利用Dectorator分模块存储Vuex状态的实现
Feb 05 Javascript
vue-router 起步步骤详解
Mar 26 Javascript
JS学习笔记之闭包小案例分析
May 29 Javascript
微信小程序实现购物车小功能
Dec 30 Javascript
js实现类选择器和name属性选择器的示例步骤
Feb 07 Javascript
vue实现的请求服务器端API接口示例
May 25 #Javascript
Vue Autocomplete 自动完成功能简单示例
May 25 #Javascript
泛谈JS逻辑判断选择器 || &amp;&amp;
May 24 #Javascript
了解JavaScript中的选择器
May 24 #Javascript
Javascript通过控制类名更改样式
May 24 #Javascript
redux.js详解及基本使用
May 24 #Javascript
javascript获取元素的计算样式
May 24 #Javascript
You might like
PHP下打开URL地址的几种方法小结
2010/05/16 PHP
php将HTML表格每行每列转为数组实现采集表格数据的方法
2015/04/03 PHP
php常用字符串长度函数strlen()与mb_strlen()用法实例分析
2019/06/25 PHP
用jscript启动sqlserver
2007/06/21 Javascript
javascript面向对象编程(一) 实例代码
2010/06/25 Javascript
jQuery插件zepto.js简单实现tab切换
2015/06/16 Javascript
深入探究AngularJS框架中Scope对象的超级教程
2016/01/04 Javascript
基于JavaScript实现的顺序查找算法示例
2017/04/14 Javascript
详解Angular中的自定义服务Service、Provider以及Factory
2017/04/22 Javascript
Angular实现的简单查询天气预报功能示例
2017/12/27 Javascript
写一个移动端惯性滑动&amp;回弹Vue导航栏组件 ly-tab
2018/03/06 Javascript
微信小程序仿RadioGroup改变样式的处理方案
2018/07/13 Javascript
详解操作虚拟dom模拟react视图渲染
2018/07/25 Javascript
JavaScript实现数组全排列、去重及求最大值算法示例
2018/07/30 Javascript
js canvas实现画图、滤镜效果
2018/11/27 Javascript
Python连接SQLServer2000的方法详解
2017/04/19 Python
Python微医挂号网医生数据抓取
2019/01/24 Python
在python中利用numpy求解多项式以及多项式拟合的方法
2019/07/03 Python
python切片(获取一个子列表(数组))详解
2019/08/09 Python
python操作docx写入内容,并控制文本的字体颜色
2020/02/13 Python
PyQt中使用QtSql连接MySql数据库的方法
2020/07/28 Python
解析浏览器的一些“滚动”行为鉴赏
2019/09/16 HTML / CSS
Halston Heritage官网:简洁的日装,稍显奢华的晚装
2018/11/20 全球购物
部队学习十八大感言
2014/01/11 职场文书
校园安全检查制度
2014/02/03 职场文书
数控技校生自我鉴定
2014/03/02 职场文书
计算机毕业生自荐信范文
2014/03/23 职场文书
《卖木雕的少年》教学反思
2014/04/11 职场文书
2014年政教处工作总结
2014/12/20 职场文书
单位租车协议书
2015/01/29 职场文书
2015年五四青年节活动总结
2015/02/10 职场文书
小学推普周活动总结
2015/05/07 职场文书
2015年迎新晚会策划书
2015/07/16 职场文书
小学数学教学反思范文
2016/02/16 职场文书
OpenStack虚拟机快照和增量备份实现方法
2022/04/04 Servers
PostgreSQL逻辑复制解密原理解析
2022/09/23 PostgreSQL