vue 项目实现下拉加载

场景:vue 网站手机端适配,需要实现拉到底部加载下一页的效果。


方法一:浏览器监听函数

浏览器加载到底部监听
1)data相关参数
 

      // 展示的数据
      tableData: [],
      // 总数据量 默认为 0
      pageTotal: 0,
      // 当前页 默认是第一页
      currentPage: 1,
      // 每页大小 默认每页10条数据
      pageSize: 10,

2)核心方法

watchScroll() {
      const self = this
      const scrollTop =
        document.documentElement.scrollTop || document.body.scrollTop
      const clientHeight = document.documentElement.clientHeight
      const scrollHeight = document.documentElement.scrollHeight
      if (scrollTop + clientHeight >= scrollHeight) {
        self.currentPage += 1 //到了底部,当前页面值+1
        self.fetchData(true) //加载数据函数
      }
    },

 // 初始数据获取
    fetchData(sign) {
      // sign 有内容则证明为加载到底部,需要拼接,其他情况则 直接代替,如刷新,查询等不需要加参数,直接fetchData()使用
      const self = this
      const data = {
        ...//你的接口参数
      }


      listget(data).then((response) => {
        this.pageTotal = response.data.total + this.pageTotal
        if (response.data.list.length > 0) { //有数据,则把数据加到现有页面上
          if (sign) {
            response.data.list.forEach((item) => {
              this.tableData.push(item)
            })
          } else {
            this.tableData = response.data.list
          }
        } else {
          self.currentPage -= 1 //当前页回退一下
          self.$message.warning('到底了') //没有消息,出来调试,这种也可以用页面底部展示内容表示
        }
      })
    },

3) 页面监听

created() {
    window.addEventListener('scroll', this.watchScroll)
},

方法二 使用elementui 自带的无限滚动(这个我没试,但是理论上可以实现)

<template>
  <ul class="infinite-list" v-infinite-scroll="load" style="overflow:auto">
    <li v-for="i in count" class="infinite-list-item">{
  { i }}</li>
  </ul>
</template>

<script>
  export default {
    data () {
      return {
        count: 0
      }
    },
    methods: {
      load () {
        this.count += 2
      }
    }
  }
</script>

相关推荐

  1. vue 项目实现

    2024-01-11 16:16:04       32 阅读
  2. 微信scroll-view小程序实现刷新

    2024-01-11 16:16:04       29 阅读
  3. uniapp向上刷新

    2024-01-11 16:16:04       45 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-11 16:16:04       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-11 16:16:04       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-11 16:16:04       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-11 16:16:04       18 阅读

热门阅读

  1. 前端开发vscode 常用插件记录

    2024-01-11 16:16:04       39 阅读
  2. Ubuntu下wifi 无线网络的配置

    2024-01-11 16:16:04       40 阅读
  3. JVM 21 的调优指南:如何进行JVM调优,JVM调优参数

    2024-01-11 16:16:04       41 阅读
  4. 2. 条件构造器

    2024-01-11 16:16:04       37 阅读
  5. vue+element ui实现图片上传并拖拽进行图片排序

    2024-01-11 16:16:04       36 阅读