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 相关文章推荐
用js统计用户下载网页所需时间的脚本
Oct 15 Javascript
js实现连续英文字符自动换行兼容ie6 ie7和firefox
Sep 06 Javascript
每天一篇javascript学习小结(面向对象编程)
Nov 20 Javascript
iscroll动态加载数据完美解决方法
Jul 18 Javascript
nginx部署访问vue-cli搭建的项目的方法
Feb 12 Javascript
vue实现点击关注后及时更新列表功能
Jun 26 Javascript
layui自己添加图片按钮并点击跳转页面的例子
Sep 14 Javascript
JS面向对象编程——ES6 中class的继承用法详解
Mar 03 Javascript
微信小程序scroll-view实现滚动到锚点左侧导航栏点餐功能(点击种类,滚动到锚点)
Jun 11 Javascript
微信小程序仿抖音短视频切换效果的实例代码
Jun 24 Javascript
vue接通后端api以及部署到服务器操作
Aug 13 Javascript
Vue中登录验证成功后保存token,并每次请求携带并验证token操作
Sep 08 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中return 和 exit 、break和contiue 区别与用法
2012/04/09 PHP
PHP 实现代码复用的一个方法 traits新特性
2015/02/22 PHP
PHP之浮点数计算比较以及取整数不准确的解决办法
2015/07/29 PHP
PHP中strcmp()和strcasecmp()函数字符串比较用法分析
2016/01/07 PHP
PHP的垃圾回收机制代码实例讲解
2021/02/27 PHP
js获取电脑分辨率的思路及操作
2013/11/22 Javascript
JS 弹出层 定位至屏幕居中示例
2014/05/21 Javascript
封装好的js判断操作系统与浏览器代码分享
2015/01/09 Javascript
Nodejs学习笔记之Stream模块
2015/01/13 NodeJs
EXT中单击button按钮grid添加一行(光标位置可设置)的实例代码
2016/06/02 Javascript
BootStrap中的表单大全
2016/09/07 Javascript
微信小程序 本地数据存储实例详解
2017/04/13 Javascript
axios进阶实践之利用最优雅的方式写ajax请求
2017/12/20 Javascript
在vue中多次调用同一个定义全局变量的实例
2018/09/25 Javascript
iview通过Dropdown(下拉菜单)实现的右键菜单
2018/10/26 Javascript
Vue函数式组件-你值得拥有
2019/05/09 Javascript
利用Electron简单撸一个Markdown编辑器的方法
2019/06/10 Javascript
超轻量级的js时间库miment使用解析
2019/08/02 Javascript
vue3.0 上手体验
2020/09/21 Javascript
[02:22:36]《加油!DOTA》总决赛
2014/09/19 DOTA
简洁的十分钟Python入门教程
2015/04/03 Python
Python实现曲线点抽稀算法的示例
2017/10/12 Python
Python编程之Re模块下的函数介绍
2017/10/28 Python
CSS3制作日历实现代码
2012/01/21 HTML / CSS
Html5页面在微信端的分享的实现方法
2018/08/30 HTML / CSS
HTML5新特性之用SVG绘制微信logo
2016/02/03 HTML / CSS
编程实现当输入某产品代码则打印出该产品记录的功能
2014/05/03 面试题
亿阳信通股份有限公司C#笔试题
2016/12/06 面试题
销售自我评价
2013/10/22 职场文书
学习心得体会
2014/01/01 职场文书
学雷锋活动总结范文
2014/04/25 职场文书
毕业论文评语大全
2014/04/29 职场文书
新闻编辑求职信
2014/07/13 职场文书
餐饮服务员岗位职责
2015/02/09 职场文书
教你用Java在个人电脑上实现微信扫码支付
2021/06/13 Java/Android
JavaScript架构搭建前端监控如何采集异常数据
2022/06/25 Javascript