广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >使用Vant如何实现数据分页,下拉加载
  • 603
分享到

使用Vant如何实现数据分页,下拉加载

2024-04-02 19:04:59 603人浏览 独家记忆
摘要

目录Vant-ui的van-list实现数据分页加载主要三个属性vant上拉加载更多,下拉刷新Vant-ui的van-list实现数据分页加载 <!DOCTYPE html&g

Vant-ui的van-list实现数据分页加载

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>vant数据分页,下拉加载</title>
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/vant@2.11/lib/index.CSS" rel="external nofollow"  />
</head>
<style>
</style>
<body>
  <div id='app'>
    <van-list class="lazy" v-model="loading" :finished="finished" finished-text="没有更多了" @load="onLoad"
      :immediate-check="false">
      <div v-for="(item,index) in list" :key="index">{{item}}</div>
    </van-list>
  </div>
</body>
<script src="Https://cdn.staticfile.org/Jquery/2.1.4/jquery.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/Vue@2.6/dist/vue.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vant@2.11/lib/vant.min.js"></script>
<script>
  var Vue = new Vue({
    el: '#app',
    data: {
      list: [],
      page: 1,
      loading: false,
      finished: false,
      num: 0
    },
    created() {
      this.getList()
    },
    mounted() {
    },
    methods: {
      // 请求公共方法
      ajax(url, params, cb) {
        $.ajax({
          type: 'post',
          url: url,
          data: params,
          dataType: "JSON",
          success: function (response) {
            cb(response)
          }
        });
      },
      onLoad() {
        this.getList()
      },
      getList() {
        let that = this
        that.ajax('url', { kay: 'value' }, function (res) {
          if (res.errcode != 0) {
            that.$toast(res.msg)
            return false
          }
          if (that.page == 1) {
            that.list = res.data.list
          } else {
            that.list = that.list.concat(res.data.list)
          }
          that.loading = false;
          that.page++
          //最后一次请求返回的数据为空或小于10条,不在请求,finished = true
          //根据业务需求更改
          if (res.data.list.length == 0 || res.data.list == null || res.data.list.length < 10) {
            that.finished = true
            return
          }
        })
      }
    }
  })
</script>
</html>

主要三个属性

注意:

  • v-model 每次数据加载完成要置为false
  • finished 置为false后将不再触发下拉加载
  • immediate-check 置为false后,每次进入页面将不会触发load方法,防止进入页面多次加载

vant上拉加载更多,下拉刷新

1.html

   <van-pull-refresh v-model="isLoading" @refresh="onRefresh">
            <van-list
              v-model="loading"
              :finished="finished"
              :immediate-check="false"
              finished-text="没有更多了呦"
              @load="onLoad"
            > 
         
            </van-list>
          </van-pull-refresh>

2.js

 return {    
      isLoading: false,
      loading: false,   
    
      page: 1,
      limit: 10,
      finished: false,
      total: 0, // 总共的数据条数
      List: [], 
    }
 
   getHistory() {
      const historyData = {
        page: this.page,
        limit: this.limit
      }
      return new Promise((resolve, reject) => {
        getHistory(historyData)
          .then(res => {
            if (res.code === 0) {
              console.log(res, '历史记录')
              this.total = res.data.total
              this.finished = !res.data.hasNext
              if (res.data.list && res.data.list.length > 0) {
                const tempList = res.data.list
                // console.log(this.page)
                if (this.page > 1) {
                  this.list = this.list.concat(tempList)
                } else {
                  this.list = tempList // 第一次加载
                }
                this.page += 1
              } else {
                this.list = []
              }
              this.loading = false
              resolve()
            }
          })
          .catch(error => {
            reject(error)
          })
      })
    }, 
 
  onLoad() {
      this.getHistory()
    },
    onRefresh() {
      this.page = 1
      setTimeout(() => {
        this.getHistory()
        Toast('刷新成功')
        this.isLoading = false
      }, 1000)
    },

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。 

--结束END--

本文标题: 使用Vant如何实现数据分页,下拉加载

本文链接: https://www.lsjlt.com/news/152891.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 使用Vant如何实现数据分页,下拉加载
    目录Vant-ui的van-list实现数据分页加载主要三个属性vant上拉加载更多,下拉刷新Vant-ui的van-list实现数据分页加载 <!DOCTYPE html&g...
    99+
    2022-11-13
  • 怎么使用Vant实现数据分页和下拉加载
    本篇内容主要讲解“怎么使用Vant实现数据分页和下拉加载”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用Vant实现数据分页和下拉加载”吧!Vant-ui的van-list实现数据分页加载...
    99+
    2023-07-02
  • uniapp实现下拉刷新及上拉(分页)加载更多(app,H5,小程序均可使用)
      开门见山地说,在移动端开发中,80%的项目都会涉及到列表展示,而有了列表不可避免的需求就是列表的下拉刷新和上拉加载更多。本篇文章主要介绍在使用uniapp开发移动端的过程中,比较好用的一个下拉及上拉组件,节约大家选择组件的时间,其完美适...
    99+
    2023-08-18
    小程序 uni-app 前端
  • 如何使用iScroll实现下拉刷新和上滑加载效果
    这篇文章主要介绍如何使用iScroll实现下拉刷新和上滑加载效果,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体内容如下html代码:<!DOCTYPE html&...
    99+
    2022-10-19
  • jQuery如何实现滑动到底部加载下一页数据
    小编给大家分享一下jQuery如何实现滑动到底部加载下一页数据,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!具体代码如下所示:&...
    99+
    2022-10-19
  • Unix系统下如何使用ASP实现实时数据加载?
    ASP(Active Server Pages)是一种基于服务器端的动态网页开发技术,它可以让开发者利用服务器上的脚本语言来动态生成网页内容。在Unix系统下,我们可以使用ASP来实现实时数据加载,从而让用户能够实时获取最新的数据。 AS...
    99+
    2023-08-07
    load 实时 unix
  • angular+ionic的app如何实现上拉加载更新数据
    小编给大家分享一下angular+ionic的app如何实现上拉加载更新数据,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!第一步...
    99+
    2022-10-19
  • Vue如何实现分批加载数据
    目录分批加载数据滚动加载数据分批加载数据 最近在写vue的项目,因为后台返回的数据量太大,在调用了高德地图渲染"polygon"覆盖物的时候处理不过来,直接蹦掉了...
    99+
    2022-11-13
  • Android实现基于滑动的SQLite数据分页加载技术(附demo源码下载)
    本文实例讲述了Android实现基于滑动的SQLite数据分页加载技术。分享给大家供大家参考,具体如下: main.xml如下: <menu xmlns:android...
    99+
    2022-06-06
    demo SQLite 分页 Android
  • 如何使用python实现下拉选择框和页签
    本篇内容主要讲解“如何使用python实现下拉选择框和页签”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用python实现下拉选择框和页签”吧!ttk模块ttk是Python中的一个模块,...
    99+
    2023-07-05
  • Qt如何实现边加载数据边显示页面
    这篇“Qt如何实现边加载数据边显示页面”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Qt如何实现边加载数据边显示页面”文章吧...
    99+
    2023-06-28
  • 如何使用DataTable插件实现异步加载数据
    这篇文章主要介绍如何使用DataTable插件实现异步加载数据,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!table部分代码<table class="t...
    99+
    2022-10-19
  • 如何使用AJAX实现无刷新数据分页
    这篇文章将为大家详细讲解有关如何使用AJAX实现无刷新数据分页,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、实现过程注意:一下的内容都是在服务器内使用的。首先要在服务器的路径下建立几个文件,比如,pa...
    99+
    2023-06-08
  • 如何使用HTML+CSS实现页面加载动画效果
    这篇“如何使用HTML+CSS实现页面加载动画效果”除了程序员外大部分人都不太理解,今天小编为了让大家更加理解“如何使用HTML+CSS实现页面加载动画效果”,给大家总结了以下内容,具有一定借鉴价值,内容详...
    99+
    2022-10-19
  • 如何在PHP项目中实现数据缓存和页面预加载?
    如何在PHP项目中实现数据缓存和页面预加载?随着互联网的发展,网站和应用程序的性能优化成为了一个重要的议题。其中,数据缓存和页面预加载是提高用户访问速度和改善用户体验的重要手段之一。在PHP项目中实现数据缓存和页面预加载,可以有效地减少数据...
    99+
    2023-11-02
    数据缓存 PHP项目 页面预加载
  • 如何使用加载图片解决在Ajax数据加载中页面出现短暂空白的问题
    这篇文章给大家分享的是有关如何使用加载图片解决在Ajax数据加载中页面出现短暂空白的问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在项目中用ajax异步获取数据后有时会因为数...
    99+
    2022-10-19
  • Linux下如何使用MaxScale实现数据库读写分离
    这篇文章主要介绍Linux下如何使用MaxScale实现数据库读写分离,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!MaxScale是maridb开发的一个mysql数据中间件,其配置简单,能够实现读写分离,并且可以...
    99+
    2023-06-27
  • 如何动手用代码实现VB.NET ListView加载数据
    如何动手用代码实现VB.NET ListView加载数据,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。VB.NET还是比较常用的,于是我研究了一下VB.NET ...
    99+
    2023-06-17
  • 如何用 Python 实现大数据重定向和加载?
    在当今的数字时代,数据已经成为企业和组织最重要的资产之一。然而,处理大量数据是一项巨大的挑战,需要使用高效的工具和技术。Python是一种流行的编程语言,可以用于处理大量数据。在本文中,我们将探讨如何使用Python实现大数据重定向和加载。...
    99+
    2023-10-18
    大数据 重定向 load
  • 微信小程序如何实现页面滑动屏幕加载数据效果
    小编给大家分享一下微信小程序如何实现页面滑动屏幕加载数据效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!我们先看看效果图:创建...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作