1. 程式人生 > >​藉助雲開發資料庫實現小程式列表上拉重新整理功能丨雲開發101

​藉助雲開發資料庫實現小程式列表上拉重新整理功能丨雲開發101

上一期101專欄中,我們介紹瞭如何藉助雲開發資料庫實現小程式的列表觸底自動載入功能,相對應的,小程式列表上拉重新整理又該如何實現呢?本期專欄就來為大家解答。

原理說明

在小程式中,如果我們希望實現上拉重新整理的功能,則需要我們監聽小程式頁面的 onPullDownRefresh 事件,我們可以在這個方法中實現資料的載入和替換,從而實現資料的重新整理和頁面的更新。

實現程式碼

正常情況下的上拉重新整理
首先,我們先來看一看一般情況下的上拉重新整理功能的實現。這裡的「一般情況」是指你沒有使用 scroll-view 元件的場景,或者使用的是橫向的 scroll-view 的場景,列表是直接構建在頁面內部的,而不是構建在 scroll-view

內部的。

在這種情況下,我們如果希望在頁面上實現上拉重新整理,需要在 app.json 中的 window 選項中,或者是頁面的配置中加入 enablePullDownRefresh,並將其配置為 true

// app.json
{
   ...
   "window":{
       "enablePullDownRefresh":true
    }
    ...
}
// page.json
{
   "enablePullDownRefresh":true
}

配置好以後,我們就可以開始配置了。進入到我們需要實現下拉重新整理的頁面,在這個頁面中,我們需要在 Page 的建構函式中新增 onPullDownRefresh

函式的監聽。

Page({
  onPullDownRefresh:function(){
      // 這裡我們需要進行頁面的載入。
    }
})

我們需要在 onPullDownRefresh 函式中,加入我們查詢資料的程式碼,從而實現資料的更新和替換,大體上寫好的程式碼如下:

Page({
  onPullDownRefresh:function(){
      let db = wx.cloud.database();
    // 查詢資料
    db.collection('records').get().then(res => {
      // 更新資料
      this.setData({
                data: res.data
      },()=>{
                wx.stopPullDownRefresh();  // 資料同步完成後,停止掉上拉重新整理的動畫效果。
      })
    }).catch(err => {
      console.error(err)
    })
  }
})

在上面這段程式碼中,我們在 onPullDownRefresh 方法中加入了 雲開發的資料庫查詢方法,並在資料庫查詢方法的成功回撥中加入了 setData 的方法來更新資料,從而確保我們的小程式的頁面資料可以完成更新。

setData 方法的回撥中,我加入了對 wx.stopPullDownRefresh 的呼叫,這個 API 可以停止掉小程式的 PullDownRefresh 的動效,從而避免掉資料更新完成了,但是頁面還處在下拉載入的狀態。

這樣,我們就足以處理絕大多數場景下的上拉重新整理的情況了。

特殊情況下的上拉重新整理

除了直接在頁面上使用上拉重新整理的 API 以外,還會有另外一種場景,就是我們會將頁面頂部固定,下方的部分滾動,比如騰訊視訊的視訊播放頁面。這個頁面是在上方放置一個 Video Player,下方放置一個 scroll-view 來完成滑動,從而實現頂部的 Video Player 固定的效果。在這種情況下,我們應該如何實現上拉重新整理呢?

其實也很簡單,我們只需要利用 scroll-view 元件的 bindscrolltoupper 事件來完成上拉重新整理的功能。

在具體實現的時候,我們需要在 scroll-view 元件中加入對應的配置。

<scroll-view upper-threshold="50" bindscrolltoupper="onTopper">
<!--- 具體的內容 -->
</scroll-view>

然後,在對應的頁面中,加入具體的事件觸發,參考程式碼如下:

Page({  
     onTopper:function(){
          wx.startPullDownRefresh();
          let db = wx.cloud.database();
           db.collection('records').get().then(res => {
      // 更新資料
      this.setData({
                data: res.data
      },()=>{
                wx.stopPullDownRefresh(); // 資料同步完成後,停止掉上拉重新整理的動畫效果。
      })
    }).catch(err => {
      console.error(err)
    })
  }
})

這樣,我們就可以實現在 ScrollView 內部實現了一個上拉觸底的效果。

在這段程式碼中,因為我們沒有直接觸發頁面的上拉效果,所以這裡我們使用 wx.startPullDownRefresh 來觸發頁面的上拉效果,然後再使用雲開發的 API 來完成資料的載入,載入完成後,呼叫 wx.stopPullDownRefresh 方法,停掉上拉重新整理的動畫效果。

這樣,即使我們沒有直接觸發頁面的事件,但可以達到類似的頁面效果。

總結

上拉重新整理是一個我們很常用的功能,在使用時其實非常簡單,你只需要在特定的方法中呼叫相關的函式,來實現資料的過載,就可以實現上拉重新整理的功能。


如果你想要了解更多關於雲開發CloudBase相關的技術故事/技術實戰經驗,請掃碼關注【騰訊云云開發】公眾號~

相關推薦

藉助開發資料庫實現程式列表重新整理功能開發101

上一期101專欄中,我們介紹瞭如何藉助雲開發資料庫實現小程式的列表觸底自動載入功能,相對應的,小程式列表上拉重新整理又該如何實現呢?本期專欄就來為大家解答。 原理說明 在小程式中,如果我們希望實現上拉重新整理的功能,則需要我們監聽小程式頁面的 onPullDownRefresh 事件,我們可以在這個方法中實現

【微信程式重新整理和下載入

上拉重新整理和下拉載入有兩種方式可以實現: 1.使用scroll-view元件進行操作,使用自帶的scrolltoupper和scrolltolower事件可以實現。適合頁面區域性的上拉下拉。 附上

mpvue實現程式購物車左滑刪除功能

大家先看看效果 使用了iview的效果   上面的效果用到了 iView Weapp,點選進入官方文件 現在開始介紹如何在微信小程式中使用iView Weapp 到GitHub下載 iView Weapp

程式筆記 -- 下重新整理與觸底載入下一頁

下拉與觸底函式是每一個頁面都有事件函式, 同頁面生命週期函式類似 : 監聽並執行 onPullDownRefresh 判斷使用者在最頂部下拉時觸發 如果下拉後再拉回去, 不觸發  onReachBottom 判斷使用者到達最底部時觸發 如果當面頁面的內容, 不夠多時,

微信程式 PullDownRefresh下重新整理或者onShow切換頁面請求或者頻繁請求swiper裡面元素不顯示

問題描述:微信小程式中,有個業務場景是下拉重新整理重新請求輪播圖和下面的商品,我用小程式自帶的swiper元件和PullDownRefresh下拉重新整理,我在後臺上架一個商品然後下拉重新整理,1次是可以的,2次是可以的。頻繁上架下架然後輪播圖區域就顯示不出來了。 故障圖:

程式的下重新整理和輪播圖

先上圖,再解釋 wxml頁面程式碼: <scroll-view scroll-y="true" bindscrolltolower="lower" style="height:{{screenH}}px" class="scroll">

程式的下重新整理

js//index.js //獲取應用例項 const app = getApp() var page = 1; var isfinish = false;//載入完畢 function loadmore(that) { if (isfinish) return; w

實現炫酷的重新整理動效(二)

最近擼了一個上拉重新整理的小輪子,只要遵循一個協議就能自定義自己動效的上拉重新整理和載入,我自己也寫了幾個動效進去,下面是一個比較好的動效的實現過程 先上效果圖和github地址,完整程式碼個demo和進入檢視,有其他好的動效大家也可以學習交流~

資訊列表重新整理

這邊是手機端的頁面。裡面有資料迴圈渲染,上拉重新整理資料,時間處理。 HTML <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> &

藉助程式開發實現程式的登陸註冊功能

有了雲開發我們不僅可以方便的獲取到使用者的openid,還可以通過雲開發的資料庫來儲存使用者資訊,進而實現小程式使用者的登陸與註冊功能。 本節知識點 1,雲開發的使用 2,雲函式的使用 3,雲資料

教你前端如何一個人從零基礎開發完整的程式專案,包括後臺視覺化資料庫。該專案實現了個人簡歷的增刪改查以及展示和轉發分享,以及收藏他人簡歷和檢視,還有最近瀏覽過的簡歷

GitHub:https://github.com/susuGirl/resume 微信小程式名:你的專屬簡歷(微信可直接搜尋出來檢視),教你前端如何一個人從零基礎開發完整的小程式專案,包括後臺視覺化資料庫。該專案實現了個人簡歷的增刪改查以及展示和轉發分享,以及收藏他人簡歷和檢視,還

開發資料庫實現列表觸底自動載入功能開發101

雲開發資料庫之觸底自動載入 在前面的兩篇文章中,我們簡單的談了談雲開發資料庫與傳統資料庫的差異,以及雲開發資料庫中的許可權機制,今天我們來分享一些實用的程式碼,快速幫助大家完成自己的小程式的部分功能。 微信小程式實現觸底自動載入 在開發小程式類資訊流型別的應用時,我們經常會有一個需求,就是當用戶將列表滑動到列

開發實現程式訂閱訊息配置

10月12日微信官方釋出了小程式模板訊息能力調整的通知 : https://developers.weixin.qq.com/community/develop/doc/00008a8a7d8310b6bf4975b635a401 相比之前的有了較大的調整,主要的調整就是從開發者主動下發訊息改為使用者自主訂閱

開發Cloudbase,實現程式多圖片內容安全監測

### 前言 相比於文字的安全檢測,圖片的安全檢測要稍微略複雜一些,當您讀完本篇,將get到 - 圖片安全檢測的應用場景 - 解決圖片的安全校驗的方式 - 使用雲呼叫方式對圖片進行檢測 - 如何對上傳圖片大小進行限制 - 如何解決多圖上傳覆蓋問題 ## **示例效果** 當用戶上傳敏感違規圖片時,

程式問題記錄 | 使用官方提供的資料庫儲存md格式的檔案,前臺解析遇到的坑!!!!

官方提供了雲開發方案,真的是省心,又省錢。(非廣告☹️) 可坑死我了。。。 由於我要在前臺展示類似於blog格式的文章,markdown作為源資料。起初是在本地封裝module的方案,來提供md資料來

微信程式名:你的專屬簡歷(微信可直接搜尋出來檢視),教你前端如何一個人從零基礎開發完整的程式專案,包括後臺視覺化資料庫

微信小程式名:你的專屬簡歷(微信可直接搜尋出來檢視),教你前端如何一個人從零基礎開發完整的小程式專案,包括後臺視覺化資料庫。該專案實現了個人簡歷的增刪改查以及展示和轉發分享,以及收藏他人簡歷和檢視,還有最近瀏覽過的簡歷。 教程: GitHub:https://github.com/sus

微信程式開發常用技巧(6)——列表載入更多

微信小程式API提供了監聽頁面使用者下拉重新整理事件,但是沒有提供上拉監聽事件,實際開發過程中經常會用到上拉列表,載入更多的需求。那麼如何實現呢? 實現原理:利用onReachBottom監聽頁面滑動到底部,然後執行具體的函式方法,例如請求資料,然後將列表資料

零基礎學程式008----程式列表實現+本地json資料解析渲染到程式列表

點選下面網址進入系列教程 上一節帶領大家實現領簡單的計算器,這節來帶領大家學習小程式列表功能。 本節知識點 1,定義本地json檔案 2,本地檔案引入 3,小程式列表渲染實現 4,解析本地json(為解析網路json做準備) 學習之前先來帶大家看下官方文件

java實現程式開發(三)

上次Token(令牌和訊息祕鑰獲取到了); 現在就是開發小程式:首先就是要將小程式繫結在開發平臺下,同時指定自己伺服器的一個回撥地址這樣微信會定時每隔10分鐘向指定的伺服器傳送資料。如圖 同時配置你授權的一些資訊: 這裡指定伺服器接收微信推送過來的

微信程式實現列表載入,自動適應螢幕

1.檢視層wxml <view class="page__bd"> <!-- 列表渲染 --> <block wx:for="{{goodsList