Maison  >  Article  >  Applet WeChat  >  Cas de chargement de la pagination du programme WeChat Mini

Cas de chargement de la pagination du programme WeChat Mini

黄舟
黄舟original
2017-09-13 10:10:412868parcourir

Cet article présente principalement l'exemple de code de chargement paginé de l'applet WeChat. L'éditeur pense que c'est plutôt bon, je vais donc le partager avec vous maintenant et le donner comme référence. Suivons l'éditeur pour y jeter un œil.

Organisez les documents, recherchez le code de chargement paginé d'une applet WeChat, puis organisez-le et rationalisez-le un peu pour le partager.

Vous devriez rencontrer fréquemment la fonction de chargement de pagination, et il existe de nombreux scénarios d'application, tels que Weibo, QQ, WeChat Moments et les applications d'actualités, tous ont la fonction de chargement de pagination, ce qui non seulement nous sauve le trafic utilisateur s'améliore également expérience utilisateur. L'article d'aujourd'hui vise donc à présenter comment implémenter la fonction de chargement de page dans l'applet WeChat. Comme d'habitude, téléchargez d'abord le code source et les rendus.

Portail de code source


Pour mettre en œuvre une telle fonction, il faut généralement ajouter le nombre actuel de pages demandées et la taille de la page lorsque demande de données (le nombre affiché sur chaque page) Il existe également certaines interfaces qui demandent des données via le décalage de début et le décalage de fin demandés. Par exemple, si vous affichez 10 éléments de données sur une page, la première demande (première page) démarrera. avec début et fin par 0. est 9, la deuxième page est de 10 à 19, et ainsi de suite.

Puisque nous voulons implémenter la fonction de chargement de pagination, la chose la plus importante est le traitement des événements de pull-down et de pull-up. L'applet WeChat nous a aidé à encapsuler les événements déclencheurs de pull-up et de pull-up. vers le bas, comme suit


/**
 * 页面相关事件处理函数--监听用户下拉动作
 */
 onPullDownRefresh: function () {
 },

 /**
  * 页面上拉触底事件的处理函数
  */
 onReachBottom: function () {
 },

Les fans qui sont nouveaux dans les mini-programmes WeChat peuvent rencontrer une question, pourquoi ai-je réécrit les fonctions pull-up et pull-down, mais pourquoi la fonction échoue-t-elle lorsque je tire vers le haut ou vers le bas ? Aucun rappel. Pas de panique, c'est qu'en plus de réécrire ces deux fonctions, il faut aussi ajouter le code suivant au fichier de configuration json


{
  "enablePullDownRefresh": true
}

Avec le code ci-dessus , Chaque fois que nous tirons vers le haut ou vers le bas, la fonction correspondante sera déclenchée.

Créer des données dans les données


 data: {
  page: 1,
  pageSize: 30,
  hasMoreData: true,
  contentlist: [],
 },

la page est la page sur laquelle les données sont actuellement demandées, pageSize est les données de chaque taille de page, hasMoreData est utilisé pour déterminer s'il faut continuer à demander des données lors de l'extraction, c'est-à-dire s'il y a plus de données. Lorsque notre demande de données réseau réussit, si la longueur des données demandées est inférieure à pageSize : 30, cela signifie qu'il n'y a plus de données, remplacez hasMoreData par false. Si la longueur des données demandées est de 30, cela signifie qu'il y a plus de données. alors hasMoreData sera modifié de manière permanente. est vrai et le numéro de page est augmenté de 1. Lorsque la page est déroulée, la page est d'abord modifiée en 1, puis les données sont interrogées lorsque la requête de données réussit, si. la page est 1, les données obtenues sont directement affectées à la liste de contenu. Si la page Si le nombre est supérieur à 1, les données demandées seront ajoutées à la liste de contenu. De cette manière, la fonction de chargement paginé peut être réalisée.

Après l'analyse ci-dessus, nous avons une compréhension claire de l'implémentation du chargement de pagination, je présenterai donc ensuite l'implémentation du code.


 getMusicInfo: function (message) {
  var that = this
  var data = {
   showapi_appid: '25158',
   showapi_sign: 'c0d685445898438f8c12ee8e93c2ee74',
   keyword: '我',
   page: that.data.page
  }
  network.requestLoading('https://route.showapi.com/213-1', data, message, function (res) {
   console.log(res)
   var contentlistTem = that.data.contentlist
   if (res.showapi_res_code == 0) {
    if (that.data.page == 1) {
     contentlistTem = []
    }
    var contentlist = res.showapi_res_body.pagebean.contentlist
    if (contentlist.length < that.data.pageSize) {
     that.setData({
      contentlist: contentlistTem.concat(contentlist),
      hasMoreData: false
     })
    } else {
     that.setData({
      contentlist: contentlistTem.concat(contentlist),
      hasMoreData: true,
      page: that.data.page + 1
     })
    }
   } else {
    wx.showToast({
     title: res.showapi_res_error,
    })
   }

  }, function (res) {
   wx.showToast({
    title: &#39;加载数据失败&#39;,
   })

  })
 },

La fonction ci-dessus est la logique de traitement des demandes pour obtenir des informations sur la liste de musique. Cette fonction a un message de paramètre, qui est utilisé pour afficher des informations rapides lors du chargement des données. par exemple, lors de l'extraction, le message d'invite actualise les données et lors de l'extraction, il indique que davantage de données sont en cours de chargement.

Ensuite, nous commençons à charger les données une fois lors de l'entrée dans la page, c'est-à-dire dans la fonction onLoad, comme suit


 onLoad: function (options) {
  // 页面初始化 options为页面跳转所带来的参数
  var that = this
  that.getMusicInfo(&#39;正在加载数据...&#39;)
 },

Ensuite pull up and down L'implémentation de la fonction est la suivante


 /**
 * 页面相关事件处理函数--监听用户下拉动作
 */
 onPullDownRefresh: function () {
  this.data.page = 1
  this.getMusicInfo(&#39;正在刷新数据&#39;)
 },

 /**
  * 页面上拉触底事件的处理函数
  */
 onReachBottom: function () {
  if (this.data.hasMoreData) {
   this.getMusicInfo(&#39;加载更多数据&#39;)
  } else {
   wx.showToast({
    title: &#39;没有更多数据&#39;,
   })
  }
 },

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn