首页 > 编程 > JavaScript > 正文

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

2019-11-19 11:28:23
字体:
来源:转载
供稿:网友

本文实例讲述了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程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表