上拉加載更多后臺數據_6-7【微信小程序全棧開發課程】記錄頁面(七)--分頁加載記錄數據...

945207bc634e751740ce80786c7e4702.png

現在是一次性加載所有的記錄數據,數據多的時候,會加載比較慢,所以我們改成分頁加載,一次最多加載15條數據

每次拉倒底部都會自動加載下一頁的數據,知道所有的數據加載完成

1、添加data變量

編輯record.vue文件,添加兩個變量page和more

page默認為0,表示當前的頁數;more默認為true,用來控制底部顯示的信息

data () {return {show_record:false,userinfo:{},records:[],page: 0,more: true}
},

2、添加底部頁面代碼

<!-- 參考代碼,無需粘貼
<RecordList :key='index' v-for='(record,index) in records' :record = 'record'></RecordList> --><!-- 需要添加的部分 -->
<!-- 如果more為false,底部顯示「沒有更多數據」 -->
<p class="text-footer" v-if="!more">沒有更多數據
</p>
<!-- 如果records數據一共不到15條,底部什么也不用顯示 -->
<p class="text-footer" v-else-if="records.length < 15">
</p>
<!-- 如果more為true,并且總記錄大于15條,底部顯示加載中 -->
<p class="text-footer" v-else>加載中···
</p>

3、編輯getRecords方法

根據下面的提示編輯方法

async getRecords () {//調用后臺數據時顯示「加載中」提示框wx.showToast({title: '加載中',icon: 'loading'})//***需要添加的代碼***if(this.page === 0){this.records = []}//需要傳到后臺的數據const data = {openid: this.userinfo.openId,//***需要添加的代碼***page: this.page}//將后臺傳過來的數據保存到records變量中const records = await get('/weapp/getrecords', data)//concat是拼接數組的方法,將新查出的數據,拼接到records數組中//***需要編輯的代碼***// this.records = records.recordsthis.records = this.records.concat(records.records)//***需要添加的代碼***//每次在數據庫中查找15條數據,如果查出的數據不足15條說明這是最后一頁了,將more改為falseif (records.records.length < 15 && this.page > 0) {this.more = false}//通過records數組的長度來判斷show_record變量為false或者trueif(this.records.length === 0){this.show_record = true}else{this.show_record = false}console.log("從后臺返回的記錄數據:",this.records)wx.hideToast()
}

4、到達底部加載數據

onReachBottom函數是到達小程序頁面底部會觸發的函數,我們在這里面調用getRecords方法,每次小程序頁面下拉到底部,都會自動觸發getRecords方法,調用record數據

//參考代碼,無需粘貼
//onShareAppMessage(e) {//...
//},// 需要添加的代碼
onReachBottom () {// 如果more為false,說明沒有更多數據了,不需要再加載getRecords方法,return結束加載if (!this.more) {return false}// 加載下一頁this.page = this.page + 1console.log("this.page",this.page)this.getRecords()
},

5、修改后臺操作文件

也就是server/controllers/getrecords.js文件,接收到當前的頁面page數據,加載相應數據

//原代碼
const {openid} = ctx.request.query//修改為
const {openid,page} = ctx.request.query
//原代碼
const records = await mysql('records').select('id','add','mark','note','create_time').where("openid",openid).orderBy('id','desc')//修改為
const records = await mysql('records').select('id','add','mark','note','create_time').where("openid",openid).orderBy('id','desc').limit(15).offset(Number(page) * 15)

limit n offset m是mysql的分頁語句 代碼從m行開始查,查找n條數據

6、重置頁面

每次切換到記錄頁面,用戶應該最想看到最新數據,所以需要將page變量設為0

(1)給getRecords方法添加一個參數init,并且當init為true時,將page重置為0,more重置為true

//getRecords方法添加一個參數init
async getRecords (init) {if(init){this.page = 0this.more = true}//參考代碼,無需粘貼//wx.showToast({//title: '加載中',//icon: 'loading'//})//...
//}

(2)編輯onShow中的getRecords方法,添加參數true

//原代碼
this.getRecords()//修改為
this.getRecords(true)

7、下拉重置頁面

下拉函數我們之前講過是onPullDownRefresh,使用這個函數,需要現在main.json文件里面授權

(1)在src/pages/record文件夾下面新建main.json文件,并在文件中添加代碼

{"enablePullDownRefresh":true
}

(2)在record.vue文件中添加onPullDownRefresh函數,并調用getRecords方法

//參考代碼,無需粘貼
//onReachBottom () {//…
//}//需要添加的代碼
onPullDownRefresh () {this.getRecords(true)wx.stopPullDownRefresh()
}

8、測試

保存所有修改的文件,打開微信開發者工具測試效果

在首頁點擊按鈕,生成20條左右的記錄

切換到記錄頁面,查看下面幾個方面:

(1)上翻小程序到達底部,查看是否會自動加載數據,加載完所有數據,底部會顯示沒有更多數據

(2)下拉小程序,查看頁面是否更新

(3)切換頁面,查看頁面是否更新

12c27b3b617375acc952af26b76f39ad.png
作者:貓寧一 95后全棧程序媛?? ??? ??一枚~ 熱愛學習!熱愛編程!
可關注【貓寧一】公眾號領取我所有全棧項目代碼哦~點擊查看課程目錄:微信小程序全棧開發課程目錄

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

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

相關文章

spring cloud eureka服務注冊和調用

SPRING INITIALIZR構建工程 spring boot 可通過SPRING INITIALIZR構建項目訪問SPRING INITIALIZR官網&#xff0c;填寫項目相關信息后&#xff0c;生成項目。將下載的項目解壓&#xff0c;打開idea&#xff0c;file-->new-->project from existing sources。import proje…

去從事有門檻有積累的工作

現在社會的IT工作&#xff0c;一時風光無限&#xff0c;但是積累性不足。跟老外比較起來&#xff0c;國內的IT算是民工級別的。再加上&#xff0c;前些年的培訓機構&#xff0c;不斷的輸出水平很次但很能加班的「人才」進入這個行業&#xff0c;「劣幣驅逐良幣」的效果下&#…

打印工資條怎么做到每個人都有表頭明細_朋友說:能不能用python,幫我寫一個“制作工資條”的自動化程序?...

本文說明今天和一個朋友吃飯&#xff0c;她說我經常使用Excel制作工資條&#xff0c;但是每個月都要做一遍&#xff0c;你能不能用python寫一個代碼&#xff0c;能夠自動化完成這個工作。這當然可以啦&#xff0c;就是這么牛逼&#xff01;我們先來看看原始數據是什么樣子的。那…

自定義按鈕 圖片標題位置隨意放置

自定義按鈕UIControl 寫在前面 #圖標和文字在一起是開發難免的問題&#xff0c;系統的按鈕默認是圖片居左的文字居右的&#xff0c; 且圖片和文字的距離不好調整&#xff0c;圖片的位置更是讓人頭疼&#xff0c; 故在閑暇之余封裝了一個控件。 復制代碼所用到知識的 # 1、蘋果系…

做優化的數據庫工程師請參考!CynosDB的計算層設計優化揭秘

本文由云社區發表本文作者&#xff1a;孫旭&#xff0c;騰訊數據庫開發工程師&#xff0c;9年數據庫內核開發經驗&#xff1b;熟悉數據庫查詢處理&#xff0c;并發控制&#xff0c;日志以及存儲系統&#xff1b;熟悉PostgreSQL&#xff08;Greenplum&#xff0c;PGXC等&#xf…

netty發送數據_看完這篇還不清楚Netty的內存管理,那我就哭了

說明在學習Netty的時候&#xff0c;ByteBuf隨處可見&#xff0c;但是如何高效分配ByteBuf還是很復雜的&#xff0c;Netty的池化內存分配這塊還是比較難的&#xff0c;很多人學習過&#xff0c;看過但是還是云里霧里的&#xff0c;本篇文章就是主要來講解&#xff1a;Netty分配池…

數字化改革體系架構“152”兩次迭代升級為“1612”

數字化改革體系架構已經完成兩次迭代&#xff0c;152-1512-1612。 2021年&#xff0c;浙江在全國率先啟動一項關系全局、影響深遠、制勝未來的重大集成改革——數字化改革&#xff0c;并確定為全面深化改革的總抓手。 2021年2月18日&#xff0c;數字化改革大會“152”工作體系…

微軟希望每個人有自己的人工智能朋友

微軟正在和其他公司那樣投資和研發人工智能技術&#xff0c;同時微軟也希望人工智能技術能夠深入我們的日常生活。 為此微軟正在申請新的專利技術希望每個人在社交網絡上都有自己的人工智能朋友可以隨時隨地的溝通交流。 實際上該專利屬于已經實踐的內容再來申請專利技術的&…

python 40位的數減個位數_Python數據分析入門教程(五):數據運算

作者 | CDA數據分析師進行到這一步就可以算是開始正式的烹飪了&#xff0c;在這部分之前的數據操作部分我們列舉了一些不同維度的分析指標&#xff0c;這一章我們主要看看這些指標都是怎么計算出來的。一、算術運算算術運算就是基本的加減乘除&#xff0c;在Excel或者Python中數…

數字化改革“152”體系詳解

架構圖 “1” 即一體化智能化公共數據平臺&#xff08;平臺大腦&#xff09;&#xff0c;按照“統一規劃、統一支撐、統一架構、統一平臺、統一標準、統一建設、統一管理、統一運維"的要求&#xff0c;建設省市縣三級公共數據平臺&#xff0c;疊加三級“大腦功能&#xf…

數字化改革“141”體系

縣級以上是“152”大框架&#xff0c;縣以下是“141”體系。 141體系是&#xff1a;縣級社會治理中心、鄉鎮&#xff08;街道&#xff09;基層治理“四個平臺”、村社網格。 “1” 第一個“1”指縣級社會治理中心。 “4” 第二個“4”指鄉鎮&#xff08;街道&#xff09;基…

spring boot——MockMvc的用法

1.pom配置 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId> </dependency> 2.所需對象及Controller public class User {private String id;private String username;private…

python一元加號_Python一元方程解算系統(需要Sympy庫支持)

解算案例本文為實現python一元方程解算的源碼案例(后續不定期更新)# -*- coding: UTF-8 -*-from sympy import *#設置一些可能拋出的異常def Warn(type):if type "missEquater":print "You missed the euqater!"elif type "excessiveEquater":…

接口做的好怎么形容_淘寶直播預告怎么做才合格?如何做好?

很多淘寶商家在直播前沒有做淘寶直播預告&#xff0c;或者不知道怎么去做直播預告&#xff0c;這對直播的效果會有很大的影響&#xff0c;那么直播前如何做好直播預告呢?怎樣的直播預告才是合格的&#xff0c;下面來了解一下。1.必須去淘寶直播中控臺發布。因為手機上發布目前…

“1+7+N”改革工作體系介紹

2021年&#xff0c;浙江省確定了“17N”的改革工作體系&#xff0c;要求以全面深化改革新成效再創體制機制新優勢。&#xff08;2022年已經升級為“1612N”&#xff0c;點擊閱讀&#xff09; “1” 數字化改革&#xff0c;這是浙江全面深化改革的總抓手。將聚焦打造全球數字變…

傻傻分不清的javascript運行機制

學習到javascript的運行機制時&#xff0c;有幾個概念經常出現在各種文章中且容易混淆。Execution Context(執行環境或執行上下文)&#xff0c;Context Stack (執行棧)&#xff0c;Variable Object(VO: 變量對象)&#xff0c;Active Object(AO: 活動對象)&#xff0c;LexicalEn…

浙江省數字化改革回顧(2022年5月)

事業的偉大在于目標的壯麗&#xff0c;也在于過程的壯麗&#xff1b;改革的成果在于享有的豐富&#xff0c;也在于經歷的豐富。2021年2月18日&#xff0c;春節假期后首個工作日&#xff0c;浙江省委召開全省數字化改革大會&#xff0c;在全國率先開啟數字化改革探索實踐。此后&…

python 某個數是不是在某個范圍內_教寫一個簡單的python小程序(04)

點擊藍字關注我們 會酸的柚子Python愛好者搞機少年七夕結束了~酸柚也是被強塞了滿嘴的狗糧在這樣充滿戀愛腐朽氣息的一天酸柚也是馬不停蹄的在趕稿子兄弟們&#xff0c;給我頂起來呀~我們來看看今日的題目可能很多小伙伴對完全平方數這個概念有點生疏了完全平方數數學上&#x…

Python:模塊module

python中一個模塊就是一個擴展名為.py的文件&#xff0c;也可能是預編譯的.pyc文件。 引入模塊用&#xff1a;import 模塊名 使用引用模塊中定義的標識符&#xff08;函數、變量、類&#xff09;用&#xff1a;模塊名.標識符名 引入模塊中的標識符用&#xff1a;from 模塊名 im…

浙江公布2022年數字化改革“最系列“成果 評選出最佳應用104項

10月29日&#xff0c;省委改革辦&#xff08;省數改辦&#xff09;公布了2022年數字化改革“最系列”成果。該評選由省委改革辦&#xff08;省數改辦&#xff09;會同省委政研室、省人大常委會法工委、省市場監管局和省大數據局共同開展&#xff0c;評選了最佳應用104項、最強大…