这个是基于上一篇文章,上拉加载更多,继续的下拉刷新

这里面利用到了 vant组件库里的 PullRefresh

下拉刷新时会触发 refresh 事件,在事件的回调函数中可以进行同步或异步操作,操作完成后将 v-model 设置为 false,表示加载完成

代码:

data () {

return {

List: [], // 频道列表

HomeList: [], // 用户选择的频道列表

channelId: 0, // 选择频道的id

loading: false, // 上拉每一页的加载状态

done: false, // 是否加载完毕

timestamp: undefined, // 记录上一次时间戳,需要给后台,做分页用的

isLoading: false// 下拉刷新的加载状态

}

},

// 使用侦听器实现数据的切换

watch: {

async channelId () {

this.HomeList = []

this.timestamp = undefined

下拉刷新BUG 频繁切换频道造成的bug

/*

在切换频道的时候,

需要手动把done设置为false,

表示当前频道没有加载完毕,

重新开始

*/

this.done = false

this.getArticleList()

}

},

async created () {

const res = await getAllChannels()

this.List = res.data.data.channels

this.getArticleList()

},

methods: {

// 获取文章列表

下拉 设置个参数 isPullDown = false

async getArticleList (isPullDown = false) {

// isPullDown = false 下拉刷新

const resp = await getArticleListApi({

channelId: this.channelId,

timestamp: this.timestamp

})

console.log(resp.data.data)

const { pre_timestamp: preTimestamp, results } = resp.data.data

if (preTimestamp === null || results.length < 10) {

this.done = true

return

}

this.timestamp = preTimestamp

// 下拉 如果isPullDown = false 就代表上拉加载

if (isPullDown === false) {

this.HomeList = [...this.HomeList, ...results]

this.loading = false

} else { // 否则就是下拉刷新

// 把最新的数据直接替换HomeList

this.HomeList = results

// 关闭下拉加载状态,可以再次进行下拉刷新

this.isLoading = false

}

},

// 上拉加载更多

onLoad () {

if (this.HomeList.length > 0) {

// 发请求,拿数据,合并

this.getArticleList()

}

},

// 下拉刷新

onRefresh () {

this.getArticleList(true)

setTimeout(() => {

this.isLoading = false

}, 2000)

}

}

}

Vant-ui 移动端下拉刷新相关推荐

  1. [ vant ] vue移动端下拉刷新组件

    学习关键语句: vant list组件和下拉刷新 vant 下拉刷新和局部滚动冲突 写在前面 每一次 ! 我是说每一次我在使用 vant 组件库里面 list组件和下拉刷新连在一起用的时候 都会出现下 ...

  2. html下拉刷新原理,科技常识:移动端下拉刷新头实现原理及代码实现

    科技常识:移动端下拉刷新头实现原理及代码实现 2021-05-24 21:23:20 • 互联网 今天小编跟大家讲解下有关移动端下拉刷新头实现原理及代码实现 ,相信小伙伴们对这个话题应该有所关注吧,小 ...

  3. Vant Tab标签页+下拉刷新+上拉加载

    Vant Tab标签页+下拉刷新+上拉加载 <template><div class="invoicePickupBox"><div class=&q ...

  4. vue移动端下拉刷新、上拉加载

    由于自身的项目比较简单,只有几个H5页面,用来嵌入app中,所有没有引入移动端的UI框架,但是介于能让用户在浏览H5页面时有下拉刷新和上拉加载,有更好的用户体验,自己写组件实现. 1.下拉刷新Drop ...

  5. Onsen UI组件实现下拉刷新和固定定位

    前言:最近用 Vue + Cordova + Onsen UI开发APP的过程中,在页面上遇到两个问题. (1)没法实现正常的类似于PC端页面中的固定定位,像position:fixed,这种css属 ...

  6. 移动端下拉刷新原理和实例

    移动端的下拉刷新是一个很常见的功能,也有许多开源库实现了这个功能,不过为了学习,还是先自己写一个例子学习一下.其中用到了一些touch事件和一些DOM属性CSS3属性.直接上代码,代码里面有注释. & ...

  7. 移动端下拉刷新与页面内滑动冲突问题 iscroll 固定行表头 苹果下拉反弹

    此方法在安卓6的自带下拉刷新的APP内无效. 做移动app项目时,用的是app内嵌webview的方法,遇到问题. 在安卓6中,app原生自带下拉刷新,与界面内的下滑冲突. 开始考虑通过在touchm ...

  8. 移动端下拉刷新infinitescroll

    使用的是infinitescroll 移动端手机下拉刷新数据 第一步:在serviceList.html导入 <script src="/js/jquery.infinitescrol ...

  9. 移动端下拉刷新,兼容ios,Android及微信浏览器

    先看一下效果图 下拉效果的样子参考的新浪微博,滚动加载是ydui的滚动加载组件 因为滚动加载使用的ydui的组件,我这里便不再累述 在线体验点这里 首先分析下拉刷新是怎么实现的 1.页面滚动到顶部时, ...

最新文章

  1. DNN安装报错-The stored procedure 'dbo.GetPortalAliasByPortalID' doesn't exist.如何解决
  2. Android 开关按钮切换,类似于iphone 效果,view实现
  3. Vue组件实现tips的总结
  4. 记一次理想浪漫的毕旅
  5. onpropertychange替代方案
  6. 易宝典文章——玩转Office 365中的Exchange Online服务 之十一 怎样在Exchange Online中配置邮件传递限制...
  7. 六句话,看完新造车的2021
  8. GPG使用方法总结(密钥管理,加解密文件)
  9. 未来几年,自动化发展趋势展望
  10. systemd wsl 测试笔记
  11. 3.5 基本属性测试
  12. 微信订阅号推广只要这一个标题就够了!
  13. Delphi Assigned 简单使用
  14. 射频功率计SCPI二次开发程控软件
  15. java 与数据库连接失败_java链接不上数据库,怎么解决!
  16. 车牌识别github资源
  17. oracle取出生僻字显示乱码,python cx_Oracle 查询到生僻字报错问题处理
  18. 微信小程序“插件未授权使用”问题解决
  19. CS224W-07:图神经网络二
  20. 基础tips:.NET和ASP.NET还有ASP到底是什么?客户端WinForm和WPF的区别?前端三大框架,webpack和vite的比较,android三大框架.

热门文章

  1. JPEG压缩原理与DCT离散余弦变换
  2. 关于呵榀(pin)的意思
  3. 西北陕甘宁地区有影响力的调查研究咨询公司
  4. graphviz画图软件介绍及使用感受
  5. CS231n-Lecture5:卷积神经网络(CNN / ConvNets)
  6. 弱监督目标检测算法论文阅读(五)Combinational Class Activation Maps for Weakly Supervised Object Localization
  7. php 图片一摸一样,PHP实现图片相似度对比
  8. matlab生成棋盘标定板,勇哥的视觉实验:棋盘格标定板标定
  9. 惠普dv2000系列笔记本(v3000系列适用)图文拆机教程
  10. 开发出差申请审批单时碰到的问题