问题的产生
我所接触的移动端项目经常会一个页面展示大量的列表数据,如果一次性将这些列表数据全部展示出来会严重影响性能,所以列表数据最佳的展示方式是后端将列表数据进行分页,前端每次请求只去少量数据进行渲染,页面滑到底部时再次进行请求拿到数据进行渲染。
我选用的是 mescroll 插件,但是最近在使用时我发现插件的下拉刷新是正常的,但是上拉加载总是不触发。
问题的解决
我找到了一篇文章专门介绍解决此插件上拉加载不生效的文章:blog.csdn.net/weixin_4499… 并尝试了文章中的所有方法都没有解决问题。我打算放弃这个插件改用uniapp原生的onReachBottom钩子去实现上拉加载功能时发现页面拉到最下面onReachBottom钩子也不会触发,我又查阅相关文档发现:
使用onReachBottom钩子,页面根节点(template的子节点)的高度不能写死(100%也不行),否则此钩子函数不会触发。
我的页面根节点高度设为了100%,由此我猜测插件的上拉加载不触发问题也是这个原因,将height: 100%;删掉后,果然mescroll的上来加载事件可以正常触发了。