Rumah applet WeChat Pembangunan program mini 微信小程序实现分页下拉加载的实例代码

微信小程序实现分页下拉加载的实例代码

Mar 21, 2017 pm 04:23 PM
Pembangunan program mini

转眼间我们教你微信小程序系列已经有十节系列课程了,每天的工作压力繁重,小女子也不知道自己还能坚持这样的系列教程多久。只希望每篇教程真的对大家有帮助。这节课我们要介绍的就是如何实现分页的下拉加载,我们先来看效果图

微信小程序实现分页下拉加载的实例代码

<view class="copyright">
    <view class="copyright_item">CopyRight:All Right Reserved</view>
    <view class="copyright_item">原创作者:51小程序</view>
    <view class="copyright_item">微信小程序开发者社区</view>
    <view class="copyright_item">HTML51.COM</view>
    <view class="copyright_item"><image class="img" src="../copyright/image/logo.png"/></view>
    <view class="goto_counter"><button type="default" bindtap="goto_counter">点击进入下拉加载演示页面</button></view>
</view>
Salin selepas log masuk

当用户打开一个页面时,假设后台数据量庞大时,一次性地返回所有数据给客户端,页面的打开速度就会有所下降,而且用户只看上面的内容而不需要看后面的内容时,也浪费用户流量,基于优化的角度来考虑,后台不要一次性返回所有数据,当用户有需要再往下翻的时候,再加载更加数据出来。
业务需求:
列表滚动到底部时,继续往上拉,加载更多内容
必备参数:
(1)pageindex: 1 //第几次加载
(2)callbackcount: 15 //需要返回数据的个数
其他参数:
根据接口的所需参数
实现原理:
当第一次访问接口时,传递2个必备参数(第1次加载,需要返回数据的个数为15个),和其他参数(需要搜索的字符串)给后台,后台返回第一次数据过来。在请求成功的的回调函数中,判断返回的数据是否>0,是,则取出数据,渲染视图层,并把“上拉加载”显示在列表底部;否,则没有数据可取,并把“没有更多”显示在列表底部,同时把“上拉加载”隐藏掉。
当用户已经滚动到列表底部(这里使用到小程序提供的scroll-view组件的bindscrolltolower事件),触发bindscrolltolower事件,参数pageindex+1,再把2个必备参数(第2次加载,需要返回数据的个数为15个)和其他参数(需要搜索的字符串)给后台,后台把其余的数据返回给前台,前台在原来数据的基础上添加数据


主要的页面结果如下:
1.index.wxml

<view class="search"> 
  <view class="search-bar"> 
    <view class="search-wrap"> 
        <icon type="search" size="16" class="icon-search" /> 
        <input type="text" placeholder="请输入搜索内容" class="search-input" name="searchKeyword" bindinput="bindKeywordInput" value="{{searchKeyword}}" /> 
    </view> 
    <view class="search-cancel" bindtap="keywordSearch">搜索</view> 
  </view> 
  <view class="search-result"> 
    <scroll-view scroll-y="true" bindscrolltolower="searchScrollLower"> 
      <view class="result-item" wx:for="{{searchSongList}}" wx:key="unique"  data-data="{{item}}" > 
        <view class="icon{{item.isonly==&#39;0&#39; ? &#39; nocopyright&#39; : &#39;&#39;}}"></view> 
        <text class="title">{{item.songname}}</text> 
        <view class="subtitle"> 
          <text wx:for="{{item.singer}}" wx:key="unique">{{item.name}}</text> 
        </view> 
      </view> 
      <view class="loading" hidden="{{!searchLoading}}">正在载入更多...</view> 
      <view class="loading complete" hidden="{{!searchLoadingComplete}}">已加载全部</view> 
    </scroll-view>   
  </view> 
</view>
Salin selepas log masuk

2.index.wxss

page{ 
  display: flex;  
  flex-direction: column;  
  height: 100%;  
} 
   
/*搜索*/ 
.search{ 
  flex: auto;  
  display: flex;  
  flex-direction: column;  
  background: #fff;  
} 
.search-bar{ 
  flex: none;  
  display: flex;  
  align-items: center;  
  justify-content: space-between;  
  padding: 20rpx;  
  background: #f4f4f4;  
} 
.search-wrap{ 
  position: relative;  
  flex: auto;  
  display: flex;  
  align-items: center;  
  height: 80rpx;  
  padding: 0 20rpx;  
  background: #fff;  
  border-radius: 6rpx;  
} 
.search-wrap .icon-search{ 
  margin-right: 10rpx;  
} 
.search-wrap .search-input{ 
  flex: auto;  
  font-size: 28rpx;  
} 
.search-cancel{ 
  padding: 0 20rpx;  
  font-size: 28rpx;  
} 
   
/*搜索结果*/ 
.search-result{ 
  flex: auto;  
  position: relative;  
} 
.search-result scroll-view{ 
  position: absolute;  
  bottom: 0;  
  left: 0;  
  right: 0;  
  top: 0;  
} 
.result-item{ 
  position: relative;  
  display: flex;  
  flex-direction: column;  
  padding: 20rpx 0 20rpx 110rpx;  
  overflow: hidden;  
  border-bottom: 2rpx solid #e5e5e5;  
} 
   
.result-item .media{ 
  position: absolute;  
  left: 16rpx;  
  top: 16rpx;  
  width: 80rpx;  
  height: 80rpx;  
  border-radius: 999rpx;  
} 
.result-item .title, 
.result-item .subtitle{ 
  overflow: hidden;  
  text-overflow: ellipsis;  
  white-space: nowrap;  
  line-height: 36rpx;  
} 
.result-item .title{ 
  margin-bottom: 4rpx;  
  color: #000;  
} 
.result-item .subtitle{ 
  color: #808080;  
  font-size: 24rpx;  
} 
.result-item:first-child .subtitle text{ 
  margin-right: 20rpx;  
} 
.result-item:not(:first-child) .subtitle text:not(:first-child):before{ 
  content: &#39;/&#39;;  
  margin: 0 8rpx;  
} 
.loading{ 
  padding: 10rpx;  
  text-align: center;  
} 
.loading:before{ 
  display: inline-block;  
  margin-right: 5rpx;  
  vertical-align: middle;  
  content: &#39;&#39;;  
  width: 40rpx;  
  height: 40rpx;  
  background: url(../index/images/icon-loading.png) no-repeat;  
  background-size: contain;  
  animation: rotate 1s linear infinite;  
} 
.loading.complete:before{ 
  display: none;  
}
Salin selepas log masuk

3.index.js

var util = require(&#39;../../utils/util.js&#39;) 
Page({ 
  data: { 
    searchKeyword: &#39;&#39;,  //需要搜索的字符  
    searchSongList: [], //放置返回数据的数组  
    isFromSearch: true,   // 用于判断searchSongList数组是不是空数组,默认true,空的数组  
    searchPageNum: 1,   // 设置加载的第几次,默认是第一次  
    callbackcount: 15,      //返回数据的个数  
    searchLoading: false, //"上拉加载"的变量,默认false,隐藏  
    searchLoadingComplete: false  //“没有数据”的变量,默认false,隐藏  
  }, 
  //输入框事件,每输入一个字符,就会触发一次  
  bindKeywordInput: function(e){ 
    console.log("输入框事件") 
    this.setData({ 
      searchKeyword: e.detail.value 
    }) 
  }, 
  //搜索,访问网络  
  fetchSearchList: function(){ 
    let that = this;  
    let searchKeyword = that.data.searchKeyword,//输入框字符串作为参数  
        searchPageNum = that.data.searchPageNum,//把第几次加载次数作为参数  
        callbackcount =that.data.callbackcount; //返回数据的个数  
    //访问网络  
    util.getSearchMusic(searchKeyword, searchPageNum,callbackcount, function(data){ 
      console.log(data) 
      //判断是否有数据,有则取数据  
      if(data.data.song.curnum != 0){ 
        let searchList = [];  
        //如果isFromSearch是true从data中取出数据,否则先从原来的数据继续添加  
        that.data.isFromSearch ? searchList=data.data.song.list : searchList=that.data.searchSongList.concat(data.data.song.list) 
        that.setData({ 
          searchSongList: searchList, //获取数据数组  
          zhida: data.data.zhida, //存放歌手属性的对象  
          searchLoading: true   //把"上拉加载"的变量设为false,显示  
        });  
      //没有数据了,把“没有数据”显示,把“上拉加载”隐藏  
      }else{ 
        that.setData({ 
          searchLoadingComplete: true, //把“没有数据”设为true,显示  
          searchLoading: false  //把"上拉加载"的变量设为false,隐藏  
        });  
      } 
    }) 
  }, 
  //点击搜索按钮,触发事件  
  keywordSearch: function(e){ 
    this.setData({   
      searchPageNum: 1,   //第一次加载,设置1 
      searchSongList:[],  //放置返回数据的数组,设为空  
      isFromSearch: true,  //第一次加载,设置true 
      searchLoading: true,  //把"上拉加载"的变量设为true,显示  
      searchLoadingComplete:false //把“没有数据”设为false,隐藏  
    }) 
    this.fetchSearchList();  
  }, 
  //滚动到底部触发事件  
  searchScrollLower: function(){ 
    let that = this;  
    if(that.data.searchLoading && !that.data.searchLoadingComplete){ 
      that.setData({ 
        searchPageNum: that.data.searchPageNum+1,  //每次触发上拉事件,把searchPageNum+1 
        isFromSearch: false  //触发到上拉事件,把isFromSearch设为为false 
      });  
      that.fetchSearchList();  
    } 
  } 
})
Salin selepas log masuk


Atas ialah kandungan terperinci 微信小程序实现分页下拉加载的实例代码. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Arahan sembang dan cara menggunakannya
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Pengurusan kebenaran PHP dan tetapan peranan pengguna dalam pembangunan program mini Pengurusan kebenaran PHP dan tetapan peranan pengguna dalam pembangunan program mini Jul 04, 2023 pm 04:48 PM

Pengurusan kebenaran PHP dan penetapan peranan pengguna dalam pembangunan program mini Dengan populariti program mini dan pengembangan skop aplikasi mereka, pengguna telah mengemukakan keperluan yang lebih tinggi untuk fungsi dan keselamatan program mini Antaranya, pengurusan kebenaran dan penetapan peranan pengguna adalah Bahagian penting dalam memastikan keselamatan program mini. Menggunakan PHP untuk pengurusan kebenaran dan tetapan peranan pengguna dalam program mini boleh melindungi data dan privasi pengguna dengan berkesan Perkara berikut akan memperkenalkan cara melaksanakan fungsi ini. 1. Pelaksanaan Pengurusan Kebenaran Pengurusan kebenaran merujuk kepada pemberian kebenaran operasi yang berbeza berdasarkan identiti dan peranan pengguna. dalam kecil

PHP lompat halaman dan pengurusan penghalaan dalam pembangunan program mini PHP lompat halaman dan pengurusan penghalaan dalam pembangunan program mini Jul 04, 2023 pm 01:15 PM

Lonjakan halaman PHP dan pengurusan penghalaan dalam pembangunan program mini Dengan perkembangan pesat program mini, semakin ramai pembangun mula menggabungkan PHP dengan pembangunan program mini. Dalam pembangunan program kecil, lompat halaman dan pengurusan penghalaan adalah bahagian yang sangat penting, yang boleh membantu pembangun mencapai operasi penukaran dan navigasi antara halaman. Sebagai bahasa pengaturcaraan sebelah pelayan yang biasa digunakan, PHP boleh berinteraksi dengan baik dengan program mini dan memindahkan data Mari kita lihat secara terperinci lompatan halaman PHP dan pengurusan penghalaan dalam program mini. 1. Pangkalan lompat halaman

Bagaimana untuk melaksanakan pembangunan dan penerbitan program kecil dalam uniapp Bagaimana untuk melaksanakan pembangunan dan penerbitan program kecil dalam uniapp Oct 20, 2023 am 11:33 AM

Bagaimana untuk membangunkan dan menerbitkan program mini dalam aplikasi uni Dengan pembangunan Internet mudah alih, program mini telah menjadi hala tuju penting dalam pembangunan aplikasi mudah alih. Sebagai rangka kerja pembangunan merentas platform, aplikasi uni boleh menyokong pembangunan berbilang platform program kecil pada masa yang sama, seperti WeChat, Alipay, Baidu, dll. Yang berikut akan memperkenalkan secara terperinci cara menggunakan apl uni untuk membangun dan menerbitkan program kecil, dan menyediakan beberapa contoh kod khusus. 1. Persediaan sebelum membangunkan program kecil Sebelum anda mula menggunakan uni-app untuk membangunkan program kecil, anda perlu melakukan beberapa persediaan.

Perlindungan keselamatan PHP dan pencegahan serangan dalam pembangunan program mini Perlindungan keselamatan PHP dan pencegahan serangan dalam pembangunan program mini Jul 07, 2023 am 08:55 AM

Perlindungan keselamatan PHP dan pencegahan serangan dalam pembangunan program mini Dengan perkembangan pesat Internet mudah alih, program mini telah menjadi bahagian penting dalam kehidupan orang ramai. Sebagai bahasa pembangunan back-end yang berkuasa dan fleksibel, PHP juga digunakan secara meluas dalam pembangunan program kecil. Walau bagaimanapun, isu keselamatan sentiasa menjadi aspek yang memerlukan perhatian dalam pembangunan program. Artikel ini akan menumpukan pada perlindungan keselamatan PHP dan pencegahan serangan dalam pembangunan program kecil, dan menyediakan beberapa contoh kod. XSS (serangan skrip merentas tapak) menghalang serangan XSS apabila penggodam menyuntik skrip berniat jahat ke dalam halaman web

Caching data PHP dan strategi caching dalam pembangunan program kecil Caching data PHP dan strategi caching dalam pembangunan program kecil Jul 05, 2023 pm 02:57 PM

Strategi caching dan caching data PHP dalam pembangunan program mini Dengan perkembangan pesat program mini, lebih ramai pembangun mula memberi perhatian kepada cara meningkatkan prestasi dan kelajuan tindak balas program mini. Salah satu kaedah pengoptimuman penting ialah menggunakan caching data untuk mengurangkan akses kerap kepada pangkalan data dan antara muka luaran. Dalam PHP, kita boleh menggunakan pelbagai strategi caching untuk melaksanakan caching data. Artikel ini akan memperkenalkan prinsip caching data dalam PHP dan menyediakan kod sampel untuk beberapa strategi caching biasa. 1. Prinsip caching data Caching data merujuk kepada menyimpan data dalam ingatan kepada

Kaedah pelaksanaan menu lungsur yang dibangunkan dalam PHP dalam applet WeChat Kaedah pelaksanaan menu lungsur yang dibangunkan dalam PHP dalam applet WeChat Jun 04, 2023 am 10:31 AM

Hari ini kita akan belajar bagaimana untuk melaksanakan menu lungsur yang dibangunkan dalam PHP dalam applet WeChat. Program mini WeChat ialah aplikasi ringan yang boleh digunakan pengguna terus dalam WeChat tanpa memuat turun dan memasang, yang sangat mudah. PHP ialah bahasa pengaturcaraan bahagian belakang yang sangat popular, dan ia juga merupakan bahasa yang berfungsi dengan baik dengan program mini WeChat. Mari kita lihat cara menggunakan PHP untuk membangunkan menu lungsur dalam program mini WeChat. Pertama, kita perlu menyediakan persekitaran pembangunan, termasuk PHP, alat pembangunan applet WeChat dan pelayan. kemudian kita

Kesan animasi halaman PHP dan reka bentuk interaksi dalam pembangunan program mini Kesan animasi halaman PHP dan reka bentuk interaksi dalam pembangunan program mini Jul 04, 2023 pm 11:01 PM

Pengenalan kepada kesan animasi halaman PHP dan reka bentuk interaksi dalam pembangunan program mini: Program mini ialah aplikasi yang berjalan pada peranti mudah alih dan boleh memberikan pengalaman yang serupa dengan aplikasi asli. Dalam pembangunan program mini, PHP, sebagai bahasa back-end yang biasa digunakan, boleh menambah kesan animasi dan reka bentuk interaktif ke halaman program mini. Artikel ini akan memperkenalkan beberapa kesan animasi halaman PHP yang biasa digunakan dan reka bentuk interaksi, dan melampirkan contoh kod. 1. Animasi CSS3 CSS3 menyediakan banyak sifat dan kaedah untuk mencapai pelbagai kesan animasi. Dan dalam kecil

UniApp melaksanakan analisis proses pembangunan dan pelancaran program mini ByteDance UniApp melaksanakan analisis proses pembangunan dan pelancaran program mini ByteDance Jul 06, 2023 pm 05:01 PM

Analisis proses pembangunan dan pelancaran applet ByteDance yang dilaksanakan oleh UniApp Sebagai kaedah pembangunan aplikasi mudah alih yang baru muncul, applet ByteDance secara beransur-ansur menjadi popular dalam industri. Sebelum membangunkan program mini Bytedance, kita perlu memahami cara menggunakan UniApp untuk melaksanakan proses pembangunan dan pelancaran. 1. Pengenalan kepada UniApp UniApp ialah rangka kerja yang dibangunkan berdasarkan Vue.js yang menggunakan HTML5, App dan program kecil sebagai rangka kerja pembangunan bersatu untuk berbilang terminal Dengan menulis satu set kod, ia boleh dijalankan pada berbilang platform pada masa yang sama , termasuk fon.

See all articles