這篇文章主要介紹vux-scroller中如何實現(xiàn)移動端上拉加載功能,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
創(chuàng)新互聯(lián)公司服務項目包括衡陽網(wǎng)站建設、衡陽網(wǎng)站制作、衡陽網(wǎng)頁制作以及衡陽網(wǎng)絡營銷策劃等。多年來,我們專注于互聯(lián)網(wǎng)行業(yè),利用自身積累的技術優(yōu)勢、行業(yè)經(jīng)驗、深度合作伙伴關系等,向廣大中小型企業(yè)、政府機構等提供互聯(lián)網(wǎng)行業(yè)的解決方案,衡陽網(wǎng)站推廣取得了明顯的社會效益與經(jīng)濟效益。目前,我們服務的客戶以成都為中心已經(jīng)輻射到衡陽省份的部分城市,未來相信會繼續(xù)擴大服務區(qū)域并繼續(xù)獲得客戶的支持與信任!
本文將講述vue-cli+vux-scroller實現(xiàn)移動端的上拉加載功能:
糾錯聲明:網(wǎng)上查閱資料看到很多人都將vux和vuex弄混,在這里我們先解釋一下,vuex是vue框架自帶的組件,是數(shù)據(jù)狀態(tài)管理工具,vux是一款移動端的UI組件庫;
vux(官方文檔:https://doc.vux.li/zh-CN/)是基于WeUi和vue(2.x)開發(fā)的移動端的UI組件庫,主要服務于微信頁面?;趙ebpack+vue-loader+vux可以快速開發(fā)移動端頁面,配合vux-loader方便你在WeUi的基礎上定制需要的樣式。vux-loader保證了組件按需使用,因此不用擔心最終打包了整個vux的組件庫代碼。vux并不完全依賴于WeUi,vux在WeUi的基礎上擴展了多個常用組件,但是盡量保持整體UI樣式接近WeUi的設計規(guī)范。
首先我們需要安裝vux的依賴包,命令如下:
npm install vux --save
官方文檔聲明了vux必須配合vux-loader一起使用,所以我們需要在build/webpack.base.conf.js里參照如下代碼進行配置:
const vuxLoader = require('vux-loader') const webpackConfig = originalConfig // 原來的 module.exports 代碼賦值給變量 webpackConfig module.exports = vuxLoader.merge(webpackConfig, { plugins: ['vux-ui'] })
vux的Scroller組件為我們提供了上拉加載和下拉刷新等功能,雖然官方文檔已經(jīng)聲明了不再更新此組件,但是目前的版本基本滿足于我們的日常開發(fā),所以還是可以使用的;
我們在組件中使用的時候是需要引入對應組才能進行使用的;
import { Scroller } from 'vux'
HTML視圖層代碼:
//height是設置滾動區(qū)域高度,vux對該組件聲明的不夠詳細,多次調(diào)試-170是可以使用,如有更好的算法或者理解歡迎跟博主溝通交流 //on-scroller-bottom 滾動事件 這個事件在滾動的時候會進行多次觸發(fā) //scroll-bottom-offst 在底部什么位置觸發(fā)事件,這里配置的是距離底部200px的地方滑動就可以觸發(fā) //ref 給scroller組件添加ref方便操作DOM,這是個小技巧,后面會用到//scroller標簽內(nèi)部必須包裹一層div,小技巧,不然會出現(xiàn)滑不到底部的問題 // 這個div的高度必須要高于底部滾動區(qū)域的高度,不然滾動不了 //這個div是展示提示信息的滾動內(nèi)容區(qū)域
上拉加載更多
js數(shù)據(jù)邏輯層代碼:
// 上拉加載滑動的方法 onScrollBottom () { //onFetching是個狀態(tài)變量,默認值設為false來進行控制觸發(fā)事件及更改提示信息 if (this.onFetching) { } else { //默認值onFetching為false,所以提示信息首先就是加載中,我們這里用的是原生的DOM操作方法 document.getElementById("title").innerHTML="加載中..."; //onFetching賦值為true,下次觸發(fā)的時候會觸發(fā)onFetching為true的情況 this.onFetching = true; setTimeout(() => { //此處的pageNum是當前頁碼,默認為1,每滑動一次都this.pageNum++然后傳入?yún)?shù)調(diào)用接口 this.pageNum+=1; this.$nextTick(() => { this.$refs.scrollerBottom.reset() }) //后臺請求接口 this.$http({ url:"traderecords/getPersonTradDetail", method:"get", params:{ pageSize:10, //動態(tài)的給pageNum賦值,保證每次的參數(shù)都不一樣,后臺傳過來的數(shù)據(jù)也不一樣 pageNum:this.pageNum, brandId:this.$route.query.brandId, date:this.value2 } }).then((res)=>{ console.log(res.data.data.rowMaps); //如果接口請求成功 if(res.data.code==200){ //接口請求成功并且返回的數(shù)組的長度<10不夠一頁的時候 if(res.data.data.rowMaps.length<10){ // end是控制提示信息的,不觸發(fā)滑動的時候是不展示的,默認值為false this.end=true; //返回的數(shù)組長度不夠一頁的時候提示信息修改為沒有更多數(shù)據(jù) document.getElementById("title").innerHTML="沒有更多數(shù)據(jù)了..."; // 當數(shù)組長度小于10時,該方法禁用 this.$refs.scrollerBottom.disablePullup() ; } else{ //否則提示信息為加載成功 document.getElementById("title").innerHTML="加載成功"; } //dataList是我聲明的空數(shù)組,用concat方法把新數(shù)組和后臺返回的數(shù)據(jù)進行拼接然后重新賦值給dataList,這個是關鍵 this.dataList=this.dataList.concat(res.data.data.rowMaps); console.log(this.dataList); //加載成之后提示信息改為上拉加載更多 document.getElementById("title").innerHTML="上拉加載更多"; } //再把onFetching的狀態(tài)值改為false this.onFetching = false }) }, 500) } },
以上是“vux-scroller中如何實現(xiàn)移動端上拉加載功能”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!