vue mintui-Loadmore結(jié)合實(shí)現(xiàn)下拉刷新和上拉加載示例
mintui是餓了么團(tuán)隊(duì)針對(duì)vue開發(fā)的移動(dòng)端組件庫(kù),方便實(shí)現(xiàn)移動(dòng)端的一些功能,這里只用了Loadmore功能實(shí)現(xiàn)移動(dòng)端的上拉分頁(yè)刷新,下拉加載數(shù)據(jù),廢話不說(shuō)上代碼。
<template>
<div class="main-body" :style="{'-webkit-overflow-scrolling': scrollMode}">
<v-loadmore :top-method="loadTop" :bottom-method="loadBottom" :bottom-all-loaded="allLoaded" :auto-fill="false" ref="loadmore">
<ul class="list" v-for="(val, key) in pageList">
<li>
<div>我是小11</div>
<div>我是小11</div>
</li>
</ul>
</v-loadmore>
</div>
</template>
<script>
import {Loadmore} from 'mint-ui';
export default {
data:function() {
return {
searchCondition:{ //分頁(yè)屬性
pageNo:"1",
pageSize:"10"
},
pageList:[],
allLoaded: false, //是否可以上拉屬性,false可以上拉,true為禁止上拉,就是不讓往上劃加載數(shù)據(jù)了
scrollMode:"auto" //移動(dòng)端彈性滾動(dòng)效果,touch為彈性滾動(dòng),auto是非彈性滾動(dòng)
}
},
components: {
'v-loadmore':Loadmore // 為組件起別名,vue轉(zhuǎn)換template標(biāo)簽時(shí)不會(huì)區(qū)分大小寫,例如:loadMore這種標(biāo)簽轉(zhuǎn)換完就會(huì)變成loadmore,容易出現(xiàn)一些匹配問(wèn)題
// 推薦應(yīng)用組件時(shí)用a-b形式起名
},
mounted(){
this.loadPageList(); //初次訪問(wèn)查詢列表
},
methods: {
loadTop:function() { //組件提供的下拉觸發(fā)方法
//下拉加載
this.loadPageList();
this.$refs.loadmore.onTopLoaded();// 固定方法,查詢完要調(diào)用一次,用于重新定位
},
loadBottom:function() {
// 上拉加載
this.more();// 上拉觸發(fā)的分頁(yè)查詢
this.$refs.loadmore.onBottomLoaded();// 固定方法,查詢完要調(diào)用一次,用于重新定位
},
loadPageList:function (){
// 查詢數(shù)據(jù)
this.api.PageList(this.searchCondition).then(data =>{
// 是否還有下一頁(yè),加個(gè)方法判斷,沒(méi)有下一頁(yè)要禁止上拉
this.isHaveMore(data.result.haveMore);
this.pageList = data.result.pageList;
this.$nextTick(function () {
// 原意是DOM更新循環(huán)結(jié)束時(shí)調(diào)用延遲回調(diào)函數(shù),大意就是DOM元素在因?yàn)槟承┰蛞M(jìn)行修改就在這里寫,要在修改某些數(shù)據(jù)后才能寫,
// 這里之所以加是因?yàn)橛袀€(gè)坑,iphone在使用-webkit-overflow-scrolling屬性,就是移動(dòng)端彈性滾動(dòng)效果時(shí)會(huì)屏蔽loadmore的上拉加載效果,
// 花了好久才解決這個(gè)問(wèn)題,就是用這個(gè)函數(shù),意思就是先設(shè)置屬性為auto,正?;瑒?dòng),加載完數(shù)據(jù)后改成彈性滑動(dòng),安卓沒(méi)有這個(gè)問(wèn)題,移動(dòng)端彈性滑動(dòng)體驗(yàn)會(huì)更好
this.scrollMode = "touch";
});
});
},
more:function (){
// 分頁(yè)查詢
this.searchCondition.pageNo = parseInt(this.searchCondition.pageNo) + 1;
this.api.loadPageList(this.searchCondition).then(data=>{
this.pageList = this.pageList.concat(data.result.pageList);
this.isHaveMore(data.result.haveMore);
});
},
isHaveMore:function(isHaveMore){
// 是否還有下一頁(yè),如果沒(méi)有就禁止上拉刷新
this.allLoaded = true; //true是禁止上拉加載
if(isHaveMore){
this.allLoaded = false;
}
}
}
}
</script>
花了點(diǎn)時(shí)間整理了下代碼,復(fù)制后改改就能用了,當(dāng)然你要有基本的vue開發(fā)框架,并且有點(diǎn)開發(fā)基礎(chǔ),代碼很簡(jiǎn)單,這個(gè)插件很好用,效果不錯(cuò),加載時(shí)的文字什么的可以自己修改,比如增加箭頭什么的,可以看文檔。
PS:有個(gè)坑一定要注意就是注釋里說(shuō)的iPhone里loadmore和-webkit-overflow-scrolling屬性沖突無(wú)法上拉問(wèn)題,還是vue學(xué)的不精,浪費(fèi)了太多時(shí)間,引以為戒
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- vue實(shí)現(xiàn)網(wǎng)絡(luò)圖片瀑布流 + 下拉刷新 + 上拉加載更多(步驟詳解)
- vueScroll實(shí)現(xiàn)移動(dòng)端下拉刷新、上拉加載
- vue插件mescroll.js實(shí)現(xiàn)移動(dòng)端上拉加載和下拉刷新
- vue使用better-scroll實(shí)現(xiàn)下拉刷新、上拉加載
- vue移動(dòng)端下拉刷新和上拉加載的實(shí)現(xiàn)代碼
- vue2.0 移動(dòng)端實(shí)現(xiàn)下拉刷新和上拉加載更多的示例
- vue.js整合vux中的上拉加載下拉刷新實(shí)例教程
- 解決Vue使用mint-ui loadmore實(shí)現(xiàn)上拉加載與下拉刷新出現(xiàn)一個(gè)頁(yè)面使用多個(gè)上拉加載后沖突問(wèn)題
- vue.js移動(dòng)端app之上拉加載以及下拉刷新實(shí)戰(zhàn)
- 基于vue封裝下拉刷新上拉加載組件
相關(guān)文章
詳解Vue-cli webpack移動(dòng)端自動(dòng)化構(gòu)建rem問(wèn)題
這篇文章主要介紹了詳解Vue-cli webpack移動(dòng)端自動(dòng)化構(gòu)建rem問(wèn)題,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-04-04
Vue?Baidu?Map之自定義點(diǎn)圖標(biāo)bm-marker的示例
這篇文章主要介紹了Vue?Baidu?Map之自定義點(diǎn)圖標(biāo)bm-marker,文中給大家介紹了vue-baidu-api地圖標(biāo)記點(diǎn)(自定義標(biāo)記圖標(biāo)),設(shè)置標(biāo)記點(diǎn)的優(yōu)先級(jí)問(wèn)題,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-08-08
vue項(xiàng)目結(jié)構(gòu)目錄超詳細(xì)介紹
這篇文章主要給大家介紹了關(guān)于vue項(xiàng)目結(jié)構(gòu)目錄超詳細(xì)介紹的相關(guān)資料,Vue項(xiàng)目目錄結(jié)構(gòu)是指在開發(fā)Vue項(xiàng)目時(shí),為了更好地組織和管理代碼,將不同的文件按照一定的規(guī)則和層次結(jié)構(gòu)進(jìn)行分類和存放的方式,需要的朋友可以參考下2023-12-12
vue項(xiàng)目實(shí)現(xiàn)圖形驗(yàn)證碼
這篇文章主要為大家詳細(xì)介紹了vue項(xiàng)目實(shí)現(xiàn)圖形驗(yàn)證碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-04-04
vue框架制作購(gòu)物車小球動(dòng)畫效果實(shí)例代碼
最近在學(xué)習(xí)前端制作了一個(gè)購(gòu)物車小球的動(dòng)畫效果,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2019-09-09
淺析vue 函數(shù)配置項(xiàng)watch及函數(shù) $watch 源碼分享
這篇文章主要介紹了vue 函數(shù)配置項(xiàng)watch及函數(shù) $watch 源碼分享 ,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-11-11
vue-drawer-layout實(shí)現(xiàn)手勢(shì)滑出菜單欄
這篇文章主要為大家詳細(xì)介紹了vue-drawer-layout實(shí)現(xiàn)手勢(shì)滑出菜單欄,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-11-11
vue中實(shí)現(xiàn)拖動(dòng)調(diào)整左右兩側(cè)div的寬度的示例代碼
這篇文章主要介紹了vue中實(shí)現(xiàn)拖動(dòng)調(diào)整左右兩側(cè)div的寬度的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07

