| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> JavaScript知识库 -> Vant-ui 移动端下拉刷新 -> 正文阅读 |
|
[JavaScript知识库]Vant-ui 移动端下拉刷新 |
这个是基于上一篇文章,上拉加载更多,继续的下拉刷新 这里面利用到了 vant组件库里的?PullRefresh? ? ?下拉刷新时会触发? 代码: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)????????????????}????????} } |
|
JavaScript知识库 最新文章 |
ES6的相关知识点 |
react 函数式组件 & react其他一些总结 |
Vue基础超详细 |
前端JS也可以连点成线(Vue中运用 AntVG6) |
Vue事件处理的基本使用 |
Vue后台项目的记录 (一) |
前后端分离vue跨域,devServer配置proxy代理 |
TypeScript |
初识vuex |
vue项目安装包指令收集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 10:49:40- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |