MintUI 上拉加载下拉刷新 解决添加this.$refs.loadmore.onBottomLoaded();页面卡死问题

用MintUI 写一个上拉加载下拉刷新,解决this.$refs.loadmore.onBottomLoaded();页面卡死问题

首先先导入样式和 js 文件

用脚手架写的话就按照下面的方式引入

//安装
npm install mint-ui -S

//在main.js文件中,全局引入
import Mint from 'mint-ui';
Vue.use(Mint);

//按需引入部分组件,应该都知道components的作用,不知道的:https://www.baidu.com/
import { Loadmore } from 'mint-ui';
components:{
  "v-loadmore": Loadmore
},

不是用脚手架做的话呢,用下面这种方式引入,不过这种应该用的少,毕竟做项目的话都是用脚手架去做,方便好多

<!--mintUI插件中的css文件-->
<link rel="stylesheet" href="https://unpkg.com/mint-ui/lib/style.css">
<!--mintUI插件中的js文件-->
<script src="https://unpkg.com/mint-ui/lib/index.js"></script>

1、脚手架做的是这样的

HTML:
//注意:style="{'-webkit-overflow-scrolling': scrollMode}"解决加上this.$refs.loadmore.onBottomLoaded();页面会卡死的问题,一定要在顶部盒子上加
<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" topDropText="放开那萝莉 让我来" topPullText="在往下拉试试"  topLoadingText="正在刷新">
		<ul class="list" v-for="items in pageList">
			<li>
				<div>{{items}}</div>
			</li>
		</ul>
	</v-loadmore>
</div>
css:
.main-body{//一定要设置高度以及overflow,不然上拉加载不会有效果
	height: 100%;
	overflow: scroll;
}
js:
loadTop() { //组件提供的下拉触发方法
	//下拉刷新
    setTimeout(() => {
      this.$refs.loadmore.onTopLoaded(); // 固定方法,查询完要调用一次,用于重新定位
    }, 2000);
},
loadBottom() {
// 上拉加载
   this.allLoaded = false;
   setTimeout(() => {
     this.$refs.loadmore.onBottomLoaded(); // 固定方法,查询完要调用一次,用于重新定位
   }, 2000);
},

在这里我是加了setTimeout的,主要是给你们能够看到效果,也可以不加
基本上就是这样写的

2、不是用脚手架写的

HTML:
<div class="app_loadmore" :style="{'-webkit-overflow-scrolling': scrollMode}">
	<mt-loadmore :top-method="loadTop" :bottom-method="loadBottom" :bottom-all-loaded="allLoaded" :auto-fill="false" ref="loadmore">
		<ul class="list" v-for="items in pageList">
			<li>
				<div>{{items}}</div>
			</li>
		</ul>
	</mt-loadmore>
</div>
css:
.app_loadmore {
	height: 100%;
	overflow: scroll;
}
js:
new Vue({
	el: ".app_loadmore",
	data: {
		pageList: ["我是牛逼","我是牛逼","我是牛逼","我是牛逼","我是牛逼","我是牛逼","我是牛逼","我是牛逼","我是牛逼","我是牛逼"],
		allLoaded: false, //是否可以上拉属性,false可以上拉,true为禁止上拉,就是不让往上划加载数据了 
		scrollMode: "auto" //移动端弹性滚动效果,touch为弹性滚动,auto是非弹性滚动
	},
	methods: {
		loadTop() { //组件提供的下拉触发方法 
			//下拉加载 
			setTimeout(() => {
				this.$refs.loadmore.onTopLoaded();// 固定方法,查询完要调用一次,用于重新定位
			},2000) 
		},
		loadBottom() {
			// 上拉加载 
			this.allLoaded = false;
			setTimeout(() => {
				this.$refs.loadmore.onBottomLoaded();// 固定方法,查询完要调用一次,用于重新定位
			},2000)
		},
	}
})

其实两者没有啥差距,主要是想自己看到效果的话,自己可以先完全复制下面这种不是用脚手架写的方式去看看效果

MintUI 官网:http://mint-ui.github.io/#!/zh-cn
MintUI 官网中的上拉加载下拉刷新位置:http://mint-ui.github.io/docs/#/en2/loadmore

还有一个就是滑动过快的时候,会报Ignored attempt to cancel a touchmove event with cancelable=false, for example because scrolling is in progress and cannot be interrupted.这么个错误
解决方法我也写了:https://blog.csdn.net/weixin_44557053/article/details/97663508

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值