可以使用vant组件库实现-上拉刷新、下拉加载功能

vant2开发指南:htt[ps://youzan.github.io/vant/v2/#/zh-CN/list

上拉加载- - -List列表

<van-listv-model="loading":finished="finished"finished-text="没有更多了"@load="onLoad"
><!-- 要循环的内容(组件) -->
</van-list>

将 van-list 标签包裹要循环显示 的 内容 外层

配置:loading参数 、finished参数 、onLoad方法
通过
loading - - - 控制数据的加载,false 代表没有正在刷新,true 代表正在刷新
finished - - - 控制数据是否加载完毕,true 代表数据全部加载完,false 代表数据没有加载完
onLoad方法 - - - 获取数据

loading 、finished 值在data中进行设置,下拉时,loading会由false变为 true,代表正在刷新,并且获取数据,当数据获取到后,loading 又变为 false

注意:

  1. 获取数据的方法一般有两个参数:当前页码(page),每页显示数据条数(num),可以在data中定义这两个数据
  2. 每次加载时,页码(page)+ 1
  3. 获取到的数据要合并到原来的数据数组中,一起展示,可以用const newArr = […oldArr, …res] 方式组合数据,追加数据到尾部
  4. 获取到数据后, 注意将 loading值 变为 false
  5. 如果加载时获取到的数据为空,代表全部数据加载完成,finished 改为 true,设置为true后不再有下拉加载功能
  6. 初始值loading: true,finished: false,每次获取到数据后 loading: false

下拉刷新- - -PullRefresh

<van-pull-refresh v-model="refreshing" @refresh="onRefresh" :disabled="finished"><!-- -->
</van-pull-refresh>

将 van-pull-refresh 标签包裹在 van-list 标签 外层

配置:refreshing参数 、onRefresh方法
数据加载完后,禁止下来加载,将 disabled属性和 finished 绑定,数据加载完后,禁用下拉加载功能- - -
:disabled=“finished”

refreshing - - - 是否正在下来刷新
onRefresh - - - 下拉刷新处理函数

注意:

  1. 每次刷新时,页码(page)+ 1
  2. 刷新时,将 refreshing 设置为 true,请求到数据后,再改为 false
  3. 下拉加载请求到的新的数据追加到已展示的数据中,合并到 数组的 前面,const newArr = […res, …oldArr]

综合代码示例:

<template><div class="home-container"><van-nav-bar title="测试代码" fixed/><van-pull-refresh v-model="refreshing" @refresh="onRefresh" :disabled="finished"><van-listv-model="loading":finished="finished"finished-text="没有更多了"@load="onLoad"><ArticleInfov-for="item in artList":key="item.art_id":title="item.title":author="item.aut_name":comm_count="item.comm_count":pubdate="item.pubdate":cover="item.cover"></ArticleInfo></van-list></van-pull-refresh></div>
</template><script>
import { getArticleListAPI } from '@/api/articleAPI.js'
import ArticleInfo from '@/components/Article/ArticleInfo.vue'export default {name: 'Home',components: {ArticleInfo},data() {return {page: 1,limit: 10,artList: [],loading: true,finished: false,refreshing: false}},created() {this.initArticleList()},methods: {async initArticleList(isRefresh) {const { data: res } = await getArticleListAPI(this.page, this.limit)if (isRefresh) {this.artList = [...res, ...this.artList]this.refreshing = false} else {// console.log(res)// this.artList = resthis.artList = [...this.artList, ...res]this.loading = false}if (res.length === 0) {this.finished = true}},// 上拉加载处理函数onLoad() {this.page++// this.loading = truethis.initArticleList()},// 下拉刷新处理函数onRefresh() {this.page++// this.refreshing = truethis.initArticleList(true)}}
}
</script><style lang="less" scoped>
.home-container {padding: 46px 0 50px;.van-nav-bar {background: #007bff;}/deep/ .van-nav-bar__title {color: #fff;}
}
</style>

vant2-上拉加载、下拉刷新相关推荐

  1. php微信小程序向下滑动,微信小程序功能实现:上滑加载下拉刷新

    本篇文章给大家带来的内容是关于微信小程序功能实现:上滑加载下拉刷新,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 之前谈到文章列表的数据加载,是一次性全部加载,这样是不友好的.这章介 ...

  2. ionic上拉加载-下拉刷新

    ionic上拉加载-下拉刷新 1.上拉加载 <ion-infinite-scroll on-infinite="loadOlderStories()" distance=&q ...

  3. Mint-ui中loadmore(上拉加载下拉刷新)组件在ios中滑动会触发点击事件的解决方法...

    bug说明: Mint-ui中loadmore(上拉加载下拉刷新)组件 在 使用fastclick的情况下 ,在ios设备中滑动会触发点击事件: 解决方法: 我是按需引入,去项目中找到loadmore ...

  4. php mescroll,mescroll.js上拉加载下拉刷新组件使用详解

    本文实例为大家分享了上拉加载下拉刷新组件mescroll.js的具体代码,供大家参考,具体内容如下 使用注意事项: 1.引入的时候出问题及时看官方给出的解决方案(基本上都必须看): 2.react中一 ...

  5. 教你如何使用SwipeRefreshLayout来构建一个上拉加载下拉刷新框架

    前言: 基本上所以的移动端应用都有Listview(当然RecyclerView也一样),那必不可少的都会嵌入一个上拉加载下拉刷新的功能.这样能大大的减少用户的流量消耗,同样对于用户也有更好的用户体验 ...

  6. ios 上拉加载 下拉刷新

    在一款 App应用中有的时候会用到上拉加载下拉刷新的功能,本人觉得SVPullToRefresh很好用(可以用在UIScrollView上,包括UITableview和UICollectionView ...

  7. 上拉加载下拉刷新了解下

    2019独角兽企业重金招聘Python工程师标准>>> 老样子,我们先,哦不,今天我们直接上思路,没有效果图,真的没有 我们依旧从界面及逻辑两块进行分析 1.界面上,只分成简单的两块 ...

  8. vue 实现上拉加载下拉刷新(思路贼清晰)

    项目需要用到上拉刷新下拉加载 所以自己手动实现了一个 组件: <template><div class="my-scroll" :class="[scr ...

  9. h5结合vant框架,实现列表上拉加载下拉刷新

    最近在做h5移动页面开发,并且需要用移动端android和ios将h5嵌进去.在开发过程中,使用了vant这个框架: vant文档:https://youzan.github.io/vant/#/zh ...

  10. 微信公众号上拉加载下拉刷新

    最近再再做一个公众号的项目有需要用到上拉加载,下拉刷新的技术.在网上找了很久,终于找到一个很好用 js 插件,今天我就把这个插件分享给大家,该包可用于App和微信公众号 , 资源下载地址:https: ...

最新文章

  1. No Database Selected
  2. asp.net中jQuery $post用法
  3. 怎样实现两个线程共享一个集合_面试高频考察点:几种线程安全的Map解析
  4. 关于python的一些好的书籍推荐-python官方推荐30本面向初学者的书籍!你看过几本?...
  5. android编译会生成class吗,请教下Android N混合编译生成的base.art中的类在运行时最终添加到哪个classloader的问题...
  6. 三步骤定位Windows崩溃进程
  7. Py之itchat:python库之itchat的简介、安装、使用方法之详细攻略
  8. java 正则 多个空格_java正则表达式 多个空格替换多个成-
  9. 《Iphone SDK3开发快速上手》
  10. jcr多久更新一次_拼多多商品价格竞争力星级有什么用?多久更新一次?
  11. Archlinux 升级 pacman 时遇到的问题及其解决
  12. 虚拟化架构下虚拟交换机和分布式虚拟交换机解析
  13. 技巧:在Silverlight应用程序中操作Cookie
  14. 基于springboot网上购物商城系统设计与实现
  15. 学计算机设计制图需啥基础,学习工程制图和CAD经验和方法 心得及体会
  16. 平方符号在python中的作用_python平方符号
  17. 服务器视频文件外链,视频图床 视频外链网站 视频上传外链分享
  18. 《自為墓誌銘·〔明〕張岱》原文|譯文|注釋|賞析
  19. 厉害了,Python也能使用动态链接库
  20. 为什么poi解析Excel慢?

热门文章

  1. bucket list 函数解析
  2. CentOS7 本地搭建remix-ide
  3. 自编程实现决策树(使用ID3算法)
  4. 编程语言都代表哪些国家?
  5. Leaflet包:从入门到跑路(一)
  6. python中map函数是什么意思_python中map什么意思
  7. Cocoss2d-x开发流程工具化思想与实现
  8. 手把手教你汉化Windows Phone 7程序(xap包汉化)
  9. STM32WB55_NUCLEO开发(2)----使用STM32CubeMX 生成的简单 BLE 应用程序连接手机APP
  10. caj转pdf的办法