uniapp组件整理之 下拉刷新,上拉加载

作者的话

本人使用uniapp开发H5,小程序,app还是有一段时间了,最近稍微有点时间,整理一下一些常用的组件,重温自己知识的同时,希望能对各位小伙伴们有帮助。

最后:开发不容易,能够帮助到您,是我的荣幸,当然,如果有什么问题,可以留言咱们一起讨论,共同进步!

插件地址

Dcloud 插件市场:自定义下拉刷新,上拉加载,回到顶部

更新说明

版本:1.0 (2020-08-22)

更新功能:

k-scroll-view

下拉刷新事件 @onPullDown

上拉加载事件 @onPullUp

回到顶部方法 goTop()

下拉刷新,提供两种加载方式

原生加载,即:显示头部下拉出现加载圆圈,加载完成之后隐藏

image.png

2.自定义加载,目前,仅支持自定义文字(后期考虑更多加载样式),可定义的文字有:下拉显示的文字,上拉显示的文字,加载中显示的文字,没有数据显示的文字

使用方法:

在 script 中引用

import kScrollView from '@/components/k-scroll-view/k-scroll-view.vue';

export default {

 components: {

   kScrollView

 }

}

在 template 中使用组件

   

       ref="k-scroll-view"

       :refreshType="refreshType"

       :refreshTip="refreshTip"

       :loadTip="loadTip"

       :loadingTip="loadingTip"

       :emptyTip="emptyTip"

       :touchHeight="touchHeight"

       :height="height"

       :bottom="bottom"

       :autoPullUp="autoPullUp"

       @onPullDown="handlePullDown"

       @onPullUp="handleLoadMore"

   >

       

       

   

属性说明

属性名

类型

默认值

说明

refreshType

String

native

可选值为[‘native’,'custom'],其中native为原生样式,表现为顶部下拉的圆圈,custom为自定义样式,表现为自定义下拉上拉显示的文字

refreshTip

String

正在下拉

页面下拉,但是还没达到指定值时,显示的文字

loadTip

String

获取更多数据

页面上拉,但是还没达到指定值时,显示的文字

loadingTip

String

正在加载中...

页面下拉/上拉,达到指定值释放之后,显示的文字

emptyTip

String

没有更多数据了...

页面上拉,加载不到数据之后,显示的文字

touchHeight

Number

50

页面上拉/下拉,达到该数值时显示释放加载/释放刷新,然后调用对应的监听对应的刷新或者加载的方法

height

Number

该高度为滚动区的高度,可自行设置,默认获取页面显示区(windowHeight)的高度

bottom

Number

50

距离底部的高度为该数值时,执行加载方法,保证一直加载,知道没有数据,该属性需要和 autoPullUp配合使用

autoPullUp

[String,Boolean]

true

是否自动加载更多,配合 bottom属性使用,可以在滚动区即将到底时执行加载更多的方法,避免等待

事件说明

事件名

参数

说明

@onPullDown

function(config){ }

下拉刷新的事件监听,事件返会一个函数参数,该函数用来在执行完下拉刷新的方法之后,关闭刷新的提示

@onPullUp

function(config){ }

上拉加载刷新的事件监听,事件返会一个函数参数,该函数用来在执行完加载的方法之后,关闭加载的提示,其中,config 为 {}对象,该对象传值{isEnd:true},代表已经没有更多数据

方法说明

方法名

参数

说明

goTop()

fthis.$refs['k-scroll-view'].goTop()

组件自带回到顶部的按钮,当然您也可以手动执行

demo 使用案例


</p><p>import kScrollView from '@/components/k-scroll-view/k-scroll-view.vue';</p><p>export default {</p><p> components: {</p><p> kScrollView</p><p> },</p><p> data() {</p><p> return {</p><p> refreshType: 'native',</p><p> refreshTip: '正在下拉',</p><p> loadTip: '获取更多数据',</p><p> loadingTip: '正在加载中...',</p><p> emptyTip: '没有更多数据了...',</p><p> touchHeight: 50,</p><p> height: 0,</p><p> bottom: 50,</p><p> autoPullUp: true,</p><p> list: []</p><p> };</p><p> },</p><p> onLoad() {</p><p> this.list = [];</p><p> for (var i = 0; i < 20; i++) {</p><p> this.list.push(i);</p><p> }</p><p> },</p><p> methods: {</p><p> handlePullDown(stopLoad) {</p><p> this.list = [];</p><p> for (var i = 0; i < 10; i++) {</p><p> this.list.push(i);</p><p> }</p><p> stopLoad ? stopLoad() : '';</p><p> },</p><p> handleLoadMore(stopLoad) {</p><p> console.log('到我了');</p><p> console.log(stopLoad);</p><p> const size = this.list.length;</p><p> if (size < 100) {</p><p> const list = [];</p><p> for (var i = 0; i < 10; i++) {</p><p> list.push(size + i);</p><p> }</p><p> this.list = this.list.concat(list);</p><p> stopLoad ? stopLoad() : '';</p><p> } else {</p><p> stopLoad ? stopLoad({ isEnd: true }) : '';</p><p> }</p><p> },</p><p> handleGoTop() {</p><p> this.$refs['k-scroll-view'].goTop();</p><p> }</p><p> }</p><p>};</p><p>

</p><p>.content {</p><p> display: flex;</p><p> flex-direction: column;</p><p> align-items: center;</p><p> justify-content: center;</p><p>}</p><p>

demo 使用案例 预览图

下拉刷新,上拉加载.gif


本文章由javascript技术分享原创和收集

发表评论 (审核通过后显示评论):