在使用uniapp开发项目的过程中,在很多场景里都需要下拉刷新和上拉加载,而 mescroll.js 则是一个非常精致的下拉刷新和上拉加载 js 框架。
官网地址:mescroll
介绍
mescroll.js 是在 H5端 运行的下拉刷新和上拉加载插件,时代变化太快, 作者已转向维护 mescroll 的 uni 版本了
mescroll的uni版本, 是专门用在uni-app的下拉刷新和上拉加载的组件, 支持一套代码编译到iOS、Android、H5、小程序等多个平台
mescroll的uni版本, 继承了mescroll.js的实用功能: 自动处理分页, 自动控制无数据, 空布局提示, 回到顶部按钮 ..
mescroll的uni版本, 丰富的案例, 自由灵活的api, 超详细的注释, 可让您快速自定义真正属于自己的下拉上拉组件
mescroll的uni版本, 提供
和 两个组件, 其中 支持配置成系统自带的下拉组件 是1.2.1版本新增的组件, 用来填补 的不足 : 
| 对比项 | mescroll-uni | mescroll-body | 系统自带的下拉组件 | 
|---|---|---|---|
| 本质 | scroll-view的滚动 | 原生页的滚动 | 原生页的滚动 | 
| 是否支持自定义UI | 是 | 是 | x | 
| 是否支持上拉翻页加载 | 是 | 是 | x | 
| 支持配置空布局,回到顶部按钮 | 是 | 是 | x | 
| 支持动态开启/禁止下拉功能 | 是 | 是 | 仅APP端可以 | 
| 支持设置下拉区域出现的位置 | 是 | 是 | 仅APP端可以 | 
| 支持局部区域滚动 (如嵌在弹窗,浮层中) | 是 | x | x | 
| 数据不满屏,仍可上拉翻页加载 | 是 | x | x | 
| 不必固定高度 | x | 是 | 是 | 
| 不必配置pages.json | x | 是 | x | 
| 可写入 原生组件, 如video,map,canvas | x | 是 | 是 | 
| 支持titleNView的transparent透明渐变 | x | 是 | 是 | 
| 超长的复杂的列表是否卡顿 (性能) | 低端机型会卡顿 | 流畅 | 流畅 | 
| 总结 | 从1.2.1版本开始 绝大部分情况应优先考虑使用 mescroll-body 因为支持原生组件,且性能好 只有当需要局部区域滚动 (如嵌在弹窗,浮层,swiper中), 才考虑 mescroll-uni | 
使用
- 插件市场, 点击右侧的"使用HBuilderX导入插件"按钮
 - 下载示例, 找到合适的示例, 搬运代码(砖头), 比看文档快多啦
 
mescroll-body :
- 无需配置pages.json (检查是否配置了多余的属性):
 
{  | 
- 在具体页面中的示例 (vue2) :
 
<template>  | 
- 在具体页面中的示例 (vue3) :
 
<template>  | 
mescroll-uni :
- 需要配置 pages.json :
 
{  | 
- 在具体页面中的示例 :
 
<template>  | 
效果图(loading样式可以自定义)
上拉效果
下拉效果
参数配置
mescroll 的配置可以使得页面样式变得多样化,更多配置可以去官网看一下。
downOption: {  | 
小发现
- 官网为了适配苹果端,用了组件的情况下,最下面会有一个留白,大部分同学应该不需要处理,可是样式已经是做过适配的情况,又不需要此留白,可在全局加上如下样式:
.mescroll-bottombar{
height: unset ;
} - 使用组件的话最下面会有 
--END--这样的文字提示,但是如果后端返回的total,小于5条,或者页面数据总共小于5条,那么此文字是无效的,因此大家需要任何情况都需要文字,处理返回的条数传入组件大于5条即可 
小结
- 本文大部分主要复制官网内容,做一个简单的梳理,更多精彩的内容,请移步 官网
 - 官网还有 
<mescroll-empty>等使用方法 - 个性化使用组件,还可以有很多好看的动画以及配置