uniapp的上拉加載H5和小程序

小程序


配置

{"path": "list/course-list","style": {"navigationBarTitleText": "課程列表","enablePullDownRefresh": true,"onReachBottomDistance": 150}}

上拉拉觸底鉤子

onReachBottom() {var that = this;if (that.groupPage * that.showNo - that.groupTotal < 0) {setTimeout(function () {that.groupPage += 1;that.getCommodityList();//請求下頁數據}, 200);} else {this.isfinish = true;console.log("數據已經加載完成")}},

data值

data() {return {imgBaseWebUrl: this.$imgBaseWebUrl,serverFileUrl: app.globalData.ossFileServer,loading: '加載中',shopList: [],flowList: [],leftList: [],dictClassifyId: "",searchText: '',//搜索關鍵字groupPage: 1, //列表部分當前頁碼groupTotal: 0, //列表部分總頁碼showNo: 10,//每頁顯示條數isfinish: false,//列表數據是否加載完成reqIng: true,//數據請求中};

getCommodityList請求數據:

//獲取所有商品getCommodityList: function () {let that = this;let url = "/classSchedule/page";that.reqIng = true;that.isfinish = false;let params;if(this.searchText){params={page: that.groupPage,title:this.searchText}}else{params={page: that.groupPage}}// console.log("當前請求頁碼", that.groupPage)this.$http.post(url, params).then((res) => {uni.hideLoading();console.log('后端', res);if (res.code == 200) {that.flowList=res.rows;console.log('取到的數據', that.flowList)if (that.showNo >= res.total) {//只有一頁數據that.isfinish = true;}} else {uni.showToast({title: res.message,icon: "none",});}that.reqIng = false;}).catch((i) => {}).finally(() => {uni.hideLoading();});},


H5


view

<template><view class="container"><!-- 可滾動視圖 --><scroll-viewscroll-y:style="{ height: windowHeight + 'px' }"@scrolltolower="loadMore"><!-- 數據列表 --><view v-for="(item, index) in listData" :key="index" class="item">{{ item }}</view><!-- 加載狀態提示 --><view v-if="isLoadingMore" class="loading">加載中...</view><view v-if="hasMore === false" class="no-more">沒有更多了</view></scroll-view></view>
</template>

js

export default {data() {return {listData: [],           // 存儲列表數據page: 1,                // 當前頁碼isLoadingMore: false,   // 是否正在加載中hasMore: true,          // 是否還有更多數據windowHeight: uni.getSystemInfoSync().windowHeight // 屏幕高度}},created() {this.getListData() // 初始化加載第一頁數據},methods: {// &#128293; 核心:加載更多數據async loadMore() {if (!this.hasMore || this.isLoadingMore) return // 防抖:避免重復請求this.isLoadingMore = truetry {const newData = await this.fetchData({ page: this.page + 1 })if (newData.length > 0) {this.listData = [...this.listData, ...newData]this.page++} else {this.hasMore = false // 無更多數據}} catch (error) {console.error('加載失敗:', error)uni.showToast({ title: '加載失敗', icon: 'none' })} finally {this.isLoadingMore = false}},// 模擬API請求(實際替換為你的接口)fetchData({ page }) {return new Promise(resolve => {setTimeout(() => {// 模擬分頁數據(每頁5條)const startIndex = (page - 1) * 5 + 1const endIndex = page * 5const mockData = Array(5).fill().map((_, i) => `第${page}頁-條目${startIndex + i}`)resolve(mockData)}, 800) // 模擬網絡延遲})},// 可選:下拉刷新重置數據onPullDownRefresh() {this.page = 1this.listData = []this.hasMore = truethis.getListData()uni.stopPullDownRefresh() // 停止刷新動畫},getListData() {this.fetchData({ page: this.page }).then(data => {this.listData = datathis.page++})}}
}

css

.container {width: 100%;height: 100vh;
}
.item {padding: 20rpx;border-bottom: 1px solid #f0f0f0;text-align: center;
}
.loading {text-align: center;padding: 20rpx;color: #999;
}
.no-more {text-align: center;padding: 20rpx;color: #ccc;font-size: 28rpx;
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/98020.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/98020.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/98020.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【和春筍一起學C++】(四十)抽象數據類型

抽象數據類型&#xff08;abstract data type, ADT&#xff09;以通用的方式描述數據類型。C中類的概念非常適合于ADT方法。例如&#xff0c;C程序通過堆棧來管理自動變量&#xff0c;堆棧可由對它執行的操作來描述。可創建空堆棧&#xff1b;可將數據項添加到堆頂&#xff08;…

大文件斷點續傳解決方案:基于Vue 2與Spring Boot的完整實現

大文件斷點續傳解決方案:基于Vue 2與Spring Boot的完整實現 在現代Web應用中,大文件上傳是一個常見但具有挑戰性的需求。傳統的文件上傳方式在面對網絡不穩定、大文件傳輸時往往表現不佳。本文將詳細介紹如何實現一個支持斷點續傳的大文件上傳功能,結合Vue 2前端和Spring Bo…

LeNet-5:手寫數字識別經典CNN

配套講解視頻&#xff0c;點擊下方名片獲取20 世紀 90 年代&#xff0c;計算機已經能識別文本&#xff0c;但圖片識別很困難。比如銀行支票的手寫數字識別&#xff0c;傳統方法需要人工設計規則&#xff0c;費時費力且精度不高。 于是&#xff0c;Yann LeCun 及其團隊提出了 Le…

如何在 C# 中將文本轉換為 Word 以及將 Word 轉換為文本

在現代軟件開發中&#xff0c;處理文檔內容是一個非常常見的需求。無論是生成報告、存儲日志&#xff0c;還是處理用戶輸入&#xff0c;開發者都可能需要在純文本與 Word 文檔之間進行轉換。有時需要將文本轉換為 Word&#xff0c;以便生成結構化的 .docx 文件&#xff0c;使內…

Open SWE:重構代碼協作的智能范式——從規劃到PR的全流程自動化革命

在軟件開發的演進史上,工具鏈的每一次革新都深刻重塑著開發者的工作方式。LangChain AI推出的Open SWE,作為首個開源的異步編程代理,正在重新定義代碼協作的邊界——它不再僅僅是代碼生成工具,而是構建了從代碼庫分析、方案規劃、代碼實現到拉取請求創建的端到端自動化工作…

【ARDUINO】通過ESP8266控制電機【待測試】

需求 通過Wi-Fi控制Arduino驅動的3V直流電機。這個方案使用外部6V或9V電源&#xff0c;ESP8266作為Wi-Fi模塊&#xff0c;Arduino作為主控制器&#xff0c;L298N作為電機驅動器。 手機/電腦 (Wi-Fi客戶端) | | (Wi-Fi) | ESP8266 (Wi-Fi模塊, AT指令模式) | | (串口通信) | A…

cuda編程筆記(18)-- 使用im2col + GEMM 實現卷積

我們之前介紹了cudnn調用api直接實現卷積&#xff0c;本文我們探究手動實現。對于直接使用for循環在cpu上的實現方法&#xff0c;就不過多介紹&#xff0c;只要了解卷積的原理&#xff0c;就很容易實現。im2col 的核心思想im2col image to column把輸入 feature map 的每個卷積…

Loopback for Mac:一鍵打造虛擬音頻矩陣,實現跨應用音頻自由流轉

虛擬音頻設備創建 模擬物理設備&#xff1a;Loopback允許用戶在Mac上創建虛擬音頻設備&#xff0c;這些設備可被系統及其他應用程序識別為真實硬件&#xff0c;實現音頻的虛擬化傳輸。多源聚合&#xff1a;支持將麥克風、應用程序&#xff08;如Skype、Zoom、GarageBand、Logic…

深入解析Django重定向機制

概述 核心是一個基類 HttpResponseRedirectBase&#xff0c;以及兩個具體的子類 HttpResponseRedirect&#xff08;302 臨時重定向&#xff09;和 HttpResponsePermanentRedirect&#xff08;301 永久重定向&#xff09;。它們都是 HttpResponse 的子類&#xff0c;專門用于告訴…

【Java實戰?】從IO到NIO:Java高并發編程的飛躍

目錄一、NIO 與 IO 的深度剖析1.1 IO 的局限性1.2 NIO 核心特性1.3 NIO 核心組件1.4 NIO 適用場景二、NIO 核心組件實戰2.1 Buffer 緩沖區2.2 Channel 通道2.3 Selector 選擇器2.4 NIO 文件操作案例三、NIO2.0 實戰3.1 Path 類3.2 Files 類3.3 Files 類高級操作3.4 NIO2.0 實戰…

OpenCV 實戰:圖像模板匹配與旋轉處理實現教程

目錄 一、功能概述&#xff1a;代碼能做什么&#xff1f; 二、環境準備&#xff1a;先搭好運行基礎 1. 安裝 Python 2. 安裝 OpenCV 庫 3. 準備圖像文件 三、代碼逐段解析&#xff1a;從基礎到核心 1. 導入 OpenCV 庫 2. 讀取圖像文件 3. 模板圖像旋轉&#xff1a;處理…

一、cadence的安裝及入門教學(反相器的設計與仿真)

一、Cadence的安裝 1、安裝VMware虛擬機 2、安裝帶有cadence軟件的Linux系統 注&#xff1a;網盤鏈接 分享鏈接&#xff1a;https://disk.ningsuan.com.cn/#s/8XaVdtRQ 訪問密碼&#xff1a;11111 所有文件壓縮包及文檔密碼&#xff1a; Cadence_ic 3、安裝tsmc18工藝庫…

用ai寫了個UE5插件

文章目錄實際需求1.頭文件2.源文件3.用法小結實際需求 這個需求來源于之前的一個項目&#xff0c;當時用了一個第三方插件&#xff0c;里邊有一些繪制線段的代碼&#xff0c;c層用的是drawdebugline&#xff0c;當時看底層&#xff0c;覺得應該沒問題&#xff0c;不應該在rele…

機器學習從入門到精通 - 強化學習初探:Q-Learning到Deep Q-Network實戰

機器學習從入門到精通 - 強化學習初探&#xff1a;從 Q-Learning 到 Deep Q-Network 實戰 一、開場白&#xff1a;推開強化學習這扇門 不知道你有沒有過這種感覺 —— 盯著一個復雜的系統&#xff0c;既想讓它達到某個目標&#xff0c;又苦于無法用傳統規則去精確描述每一步該怎…

【OpenHarmony文件管理子系統】文件訪問接口解析

OpenHarmony文件訪問接口&#xff08;filemanagement_file_api&#xff09; 概述 OpenHarmony文件訪問接口&#xff08;filemanagement_file_api&#xff09;是開源鴻蒙操作系統中的核心文件系統接口&#xff0c;為應用程序提供了完整的文件IO操作能力。該項目基于Node-API&…

云手機運行是否消耗自身流量?

云手機運行是否消耗自身流量&#xff0c;取決于具體的使用場景和設置&#xff1a;若用戶在連接云手機時&#xff0c;使用的是家中Wi-Fi、辦公室局域網等非移動數據網絡&#xff0c;那么在云手機運行過程中&#xff0c;基本不會消耗用戶自身的移動數據流量&#xff0c;在家中連接…

JavaSe之多線程

一、多線程基本了解 1、多線程基本知識 1.進程:進入到內存中執行的應用程序 2.線程:內存和CPU之間開通的通道->進程中的一個執行單元 3.線程作用:負責當前進程中程序的運行.一個進程中至少有一個線程,一個進程還可以有多個線程,這樣的應用程序就稱之為多線程程序 4.簡單理解…

產品月報|睿本云8月產品功能迭代

睿本云8月更新已陸續上線&#xff01; 睿本云8月產品月報&#xff0c;點擊查收&#x1f447;小程序支付成功彈窗廣告、企業會員增加卡券銷售和卡券退貨模塊、工廠端可批量新增多門店訂貨單、門店端和工廠端新增“極速訂貨”、商品調撥業務支持自定義多種流程配置等功能迭代更新…

融云:當我們談論 AI 重構業務時,我們到底在談論什么

所有業務都值得用 AI 重新做一次。 這句話正在從一句鼓舞人心的口號&#xff0c;演變為一場無人可避的商業現實。AI 帶來的結構性機會&#xff0c;意味著企業有機會從根本上重構成本、效率與體驗的曲線。但這一切最終都要回到一個無比務實的問題上&#xff1a; AI 究竟如何在我…

org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException: Input length = 1異常

org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException: Input length 1異常問題解決一、問題背景二、錯誤現象三、原因分析核心問題&#xff1a;字符集不匹配四、解決過程試錯路徑記錄五、最終方案1.創建launch.json文件&#xff0c;修改VSCode…