更新记录

1.0.8(2023-05-12)

重新上架

1.0.6(2023-05-09)

下架

1.0.5(2023-05-09)

下架不再使用

查看更多

平台兼容性

Vue2 Vue3
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
HBuilderX 3.0.7 app-vue app-nvue
钉钉小程序 快手小程序 飞书小程序 京东小程序
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari

next-paging


功能&特点

  • 【配置简单】仅需两步(绑定网络请求方法、绑定分页结果数组)轻松完成完整下拉刷新,上拉加载更多功能。
  • 【低耦合,低侵入】分页自动管理。在page中无需处理任何分页相关逻辑,无需在data中定义任何分页相关变量,全由next-paging内部处理。
  • 【超灵活,支持各种类型自定义】支持自定义下拉刷新,自定义上拉加载更多,自带自定义下拉刷新效果,及其他数十种自定义属性。
  • 【功能丰富】支持国际化,支持自定义且自动管理空数据图,支持主题模式切换,支持本地分页,支持聊天分页模式,支持展示最后更新时间,支持吸顶效果,支持内部scroll-view滚动与页面滚动,支持一键滚动到顶部等诸多功能。
  • 【全平台兼容】支持nvue,vue3,支持h5、app及各家小程序。
  • 【高性能】在app-vue、h5、微信小程序、QQ小程序上使用wxs+renderjs从视图层实现下拉刷新;支持虚拟列表,轻松渲染万级数据!

反馈qq群:[455948571]()


使用

从uniapp插件市场导入

基本使用

<template>
     <next-paging 
        ref="paging" 
        v-model="dataList" 
        @query="queryList"
        :autoShowBackToTop="true"
        :defaultPageSize="15"
    >
        <!--top插槽-->
        <template #top><view class="slotTop"><text>我是顶部插槽内容</text></view></template>
        <!-- next-paging默认铺满全屏,此时页面所有view都应放在next-paging标签内,否则会被盖住 -->
        <!-- 需要固定在页面顶部的view请通过slot="top"插入,包括自定义的导航栏 -->
        <view class="item" v-for="(item,index) in dataList" :key="index">
            <view><text>{{index+1}}</text></view>   
            <view class="item-title"><text>{{item.title}}</text></view>
        </view>
        <!--bottom插槽-->
        <template #bottom><view class="slotBottom"><text>我是底部插槽内容</text></view></template>
    </next-paging>
</template>

|--------vue3用法-----------|

<script setup lang="ts">
    import { ref, unref } from 'vue';
    const paging = ref<any>(null)
    // v-model绑定的这个变量不要在分页请求结束中自己赋值,直接使用即可
    let dataList = ref([])

    // @query所绑定的方法不要自己调用!!需要刷新列表数据时,只需要调用unref(paging).reload()即可
    const queryList = async (pageNo, pageSize) => {
        // 此处请求仅为演示,请替换为自己项目中的请求
        if (pageNo > 3) {
            // 模拟ajax请求
            await new Promise(res => setTimeout(res, 500))
            // 注意如果传进去的数据的数组长度小于pageSize,next-paging会自动判断没有更多数据了
            unref(paging).complete([{title: '结尾'}]);
        } else {
            let arr = []
            for (let i = 1; i<=pageSize; i++) {
                arr.push({title: '测试item:'+ ((pageNo-1)*pageSize + i)})
            }
            // 模拟ajax请求
            await new Promise(res => setTimeout(res, 500))
            unref(paging).complete(arr);
        }
    }
</script>

|--------vue2用法-----------|

<script>
    export default {
        data() {
            return {
                // v-model绑定的这个变量不要在分页请求结束中自己赋值,直接使用即可
                dataList: []
            }
        },
        methods: {
            // @query所绑定的方法不要自己调用!!需要刷新列表数据时,只需要调用this.$refs.paging.reload()即可
            async queryList(pageNo, pageSize) {
                // 此处请求仅为演示,请替换为自己项目中的请求
                if (pageNo > 1224) {
                    // 注意如果传进去的数据的数组长度小于pageSize,next-paging会自动判断没有更多数据了
                    // 模拟ajax请求
                    await new Promise(res => setTimeout(res, 500))
                    this.$refs.paging.complete([{title: '结尾'}]);
                } else {
                    let arr = []
                    for (let i = 1; i<=pageSize; i++) {
                        arr.push({title: '测试item:'+ ((pageNo-1)*pageSize + i)})
                    }
                    // 模拟ajax请求
                    await new Promise(res => setTimeout(res, 500))
                    this.$refs.paging.complete(arr);
                }
            }
        }
    };
</script>

虚拟列表使用

<!-- 虚拟列表演示(兼容写法) -->
<!-- 在微信小程序中若使用虚拟列表推荐使用兼容写法,具体写法参见demo中的virtual-list-compatibility-demo -->
<!-- 使用虚拟列表兼容写法时必须手动在next-paging的源代码next-paging.vue中搜索next-public-virtual-cell并打开相关注释 -->
<template>
    <view class="content">
        <!-- 如果页面中的cell高度是固定不变的,则不需要设置cell-height-mode,如果页面中高度是动态改变的,则设置cell-height-mode="dynamic" -->
        <next-paging 
            ref="paging" 
            use-compatibility-mode 
            :autoShowBackToTop="true" 
            use-virtual-list 
            @query="queryList">
            <!--top插槽-->
            <template #top><view class="slotTop"><text>我是顶部插槽内容</text></view></template>
            <!-- 通过slot="cell"插入列表for循环的cell,slot-scope中提供当前for循环的item和index -->
            <!-- 因字节跳动小程序不支持slot-scope,因此不支持字节跳动小程序 -->
            <!--bottom插槽-->
            <template #bottom><view class="slotBottom"><text>我是底部插槽内容</text></view></template>
        </next-paging>
    </view>
</template>
<!--开启use-compatibility-mode后,在组件目录next-paging/components/next-paging/components/next-public-virtual-cell.vue中定义虚拟dom的样式;next-public-virtual-cell.vue内容如下 -->
<template>
    <view class="item">
        <!-- <image class="item-image" mode="aspectFit" src="@/static/boji1.png"></image> -->
        <view class="item-content">
            <text class="item-title">第{{index + 1}}行</text>
            <text style="color: red;margin-left: 10rpx;" @click.stop="titleClick(`第${index + 1}行 虚拟列表展示`)">虚拟列表展示</text>
            <view class="item-detail">{{item.detail}}</view>
        </view>
        <view class="item-line"></view>
    </view>
</template>
<script>
    export default {
        name:"next-public-virtual-cell",
        props: {
            item: null,
            index: 0,
            extraData: null
        },
        data() {
            return {

            };
        },
        methods: {
            titleClick(title){
                //如果要把点击事件传给页面,可以通过给extraData中添加对应的函数,然后在当前组件中触发这个函数,在页面中监听即可
                if(this.extraData.titleClickedCallback){
                    this.extraData.titleClickedCallback(title);
                }
            }
        }
    }
</script>
<script setup lang="ts">
    import { ref, unref } from 'vue';
    const paging = ref<any>(null)
    // v-model绑定的这个变量不要在分页请求结束中自己赋值,直接使用即可
    let dataList = ref([])

    // @query所绑定的方法不要自己调用!!需要刷新列表数据时,只需要调用unref(paging).reload()即可
    const queryList = async (pageNo, pageSize) => {
        // 此处请求仅为演示,请替换为自己项目中的请求
        if (pageNo > 113) {
            // 模拟ajax请求
            await new Promise(res => setTimeout(res, 500))
            // 注意如果传进去的数据的数组长度小于pageSize,next-paging会自动判断没有更多数据了
            unref(paging).complete([{title: '结尾'}]);
        } else {
            let arr = []
            for (let i = 1; i<=pageSize; i++) {
                arr.push({title: '测试item:'+ ((pageNo-1)*pageSize + i)})
            }
            // 模拟ajax请求
            await new Promise(res => setTimeout(res, 500))
            unref(paging).complete(arr);
        }
    }
</script>

参数

next-paging可选参数属性列表

(next-paging)back-to-top设置

参数名 说明 类型 是否必填 默认值 可选值
autoShowBackToTop 自动显示点击返回顶部按钮,默认为否 Boolean false true
backToTopThreshold 点击返回顶部按钮显示/隐藏的阈值(滚动距离),单位为px,默认为400rpx String 400rpx -
backToTopImg 点击返回顶部按钮的自定义图片地址,默认使用next-paging内置的图片 String - -
backToTopWithAnimate 点击返回顶部按钮返回到顶部时是否展示过渡动画,默认为是 Boolean true false
backToTopBottom 点击返回顶部按钮与底部的距离,注意添加单位px或rpx,默认为160rpx String 160rpx -
backToTopStyle 点击返回顶部按钮的自定义样式 Object {} -
enableBackToTop iOS点击顶部状态栏、安卓双击标题栏时,滚动条返回顶部,只支持竖向,默认为是 Boolean true false

(next-paging)data-handle设置

参数名 说明 类型 是否必填 默认值 可选值
defaultPageNo 自定义初始的pageNo,默认为1 Number 1 -
defaultPageSize 自定义pageSize,默认为10 Number 10 -
dataKey 为保证数据一致,设置当前tab切换时的标识key,并在complete中传递相同key,若二者不一致,则complete将不会生效 Number, String, Object true false
useCache 使用缓存,若开启将自动缓存第一页的数据,默认为否。 Boolean false true
cacheMode 缓存模式,默认仅会缓存组件首次加载时第一次请求到的数据,可设置为always,即代表总是缓存,每次列表刷新都会更新缓存 String - -
autowireListName 自动注入的list名,可自动修改父view(包含ref="paging")中对应name的list值 String - -
autowireQueryName 自动注入的query名,可自动调用父view(包含ref="paging")中的query方法 String - -
auto next-paging mounted后自动调用reload方法(mounted后自动调用接口),默认为是 Boolean true false
reloadWhenRefresh 用户下拉刷新时是否触发reload方法,默认为是 Boolean true false
autoScrollToTopWhenReload reload时自动滚动到顶部,默认为是 Boolean true false
autoCleanListWhenReload reload时立即自动清空原list,默认为是,若立即自动清空,则在reload之后、请求回调之前页面是空白的 Boolean true false
showRefresherWhenReload 列表刷新时自动显示下拉刷新view,默认为否 Boolean false true
showLoadingMoreWhenReload 列表刷新时自动显示加载更多view,且为加载中状态,默认为否 Boolean false true
createdReload 组件created时立即触发reload(可解决一些情况下先看到页面再看到loading的问题),auto为true时有效。为否时将在mounted+nextTick后触发reload,默认为否 Boolean false true
localPagingLoadingTime 本地分页时上拉加载更多延迟时间,单位为毫秒,默认200毫秒 Number, String 200 -
useChatRecordMode 使用聊天记录模式,默认为否 Boolean false true
autoHideKeyboardWhenChat 使用聊天记录模式时是否自动隐藏键盘:在用户触摸列表时候自动隐藏键盘,默认为是 Boolean true false
concat 自动拼接complete中传过来的数组(使用聊天记录模式时无效) Boolean true false
value v-model所绑定的list的值 Array [] -

(next-paging)empty设置

参数名 说明 类型 是否必填 默认值 可选值
hideEmptyView 是否强制隐藏空数据图,默认为否 Boolean false true
emptyViewText 空数据图描述文字,默认为“没有数据哦~” String, Object - -
showEmptyViewReload 是否显示空数据图重新加载按钮(无数据时),默认为否 Boolean false true
showEmptyViewReloadWhenError 加载失败时是否显示空数据图重新加载按钮,默认为是 Boolean true false
emptyViewReloadText 空数据图点击重新加载文字,默认为“重新加载” String, Object - -
emptyViewImg 空数据图图片,默认使用next-paging内置的图片 String - -
emptyViewErrorText 空数据图“加载失败”描述文字,默认为“很抱歉,加载失败” String, Object - -
emptyViewErrorImg 空数据图“加载失败”图片,默认使用next-paging内置的图片 String - -
emptyViewStyle 空数据图样式 Object {} -
emptyViewSuperStyle 空数据图容器样式 Object {} -
emptyViewImgStyle 空数据图img样式 Object {} -
emptyViewTitleStyle 空数据图描述文字样式 Object {} -
emptyViewReloadStyle 空数据图重新加载按钮样式 Object {} -
emptyViewFixed 空数据图片是否铺满next-paging,默认为否,即填充满next-paging内列表(滚动区域)部分。若设置为否,则为填铺满整个next-paging Boolean false true
emptyViewCenter 空数据图片是否垂直居中,默认为是,若设置为否即为从空数据容器顶部开始显示。emptyViewFixed为false时有效 Boolean true false
autoHideEmptyViewWhenLoading 加载中时是否自动隐藏空数据图,默认为是 Boolean true false
autoHideEmptyViewWhenPull 用户下拉列表触发下拉刷新加载中时是否自动隐藏空数据图,默认为是 Boolean true false
emptyViewZIndex 空数据view的z-index,默认为9 Number 9 -

(next-paging)loading设置

参数名 说明 类型 是否必填 默认值 可选值
autoHideLoadingAfterFirstLoaded 第一次加载后自动隐藏loading slot,默认为是 Boolean true false
loadingFullFixed loading slot是否铺满屏幕并固定,默认为否 Boolean false true
autoShowSystemLoading 是否自动显示系统Loading:即uni.showLoading,若开启则将在刷新列表时(调用reload、refresh时)显示,下拉刷新和滚动到底部加载更多不会显示,默认为false Boolean false true
systemLoadingMask 显示系统Loading时是否显示透明蒙层,防止触摸穿透,默认为是(H5、App、微信小程序、百度小程序有效) Boolean true false
systemLoadingText 显示系统Loading时显示的文字,默认为"加载中" String, Object - -

(next-paging)load-more设置

参数名 说明 类型 是否必填 默认值 可选值
loadingMoreCustomStyle 自定义底部加载更多样式 Object {} -
loadingMoreTitleCustomStyle 自定义底部加载更多文字样式 Object {} -
loadingMoreLoadingIconCustomStyle 自定义底部加载更多加载中动画样式 Object {} -
loadingMoreLoadingIconType 自定义底部加载更多加载中动画图标类型,可选flower或circle,默认为flower String flower circle
loadingMoreLoadingIconCustomImage 自定义底部加载更多加载中动画图标图片 String - -
loadingMoreLoadingAnimated 底部加载更多加载中view是否展示旋转动画,默认为是 Boolean true false
loadingMoreEnabled 是否启用加载更多数据(含滑动到底部加载更多数据和点击加载更多数据),默认为是 Boolean true false
toBottomLoadingMoreEnabled 是否启用滑动到底部加载更多数据,默认为是 Boolean true false
loadingMoreDefaultAsLoading 滑动到底部状态为默认状态时,以加载中的状态展示,默认为否。 Boolean false true
loadingMoreDefaultText 滑动到底部"默认"文字,默认为【点击加载更多】 String, Object null -
loadingMoreLoadingText 滑动到底部"加载中"文字,默认为【正在加载...】 String, Object null -
loadingMoreNoMoreText 滑动到底部"没有更多"文字,默认为【没有更多了】 String, Object null -
loadingMoreFailText 滑动到底部"加载失败"文字,默认为【加载失败,点击重新加载】 String, Object null -
hideNoMoreInside 当没有更多数据且分页内容未超出next-paging时是否隐藏没有更多数据的view,默认为否 Boolean false true
hideNoMoreByLimit 当没有更多数据且分页数组长度少于这个值时,隐藏没有更多数据的view,默认为0,代表不限制。 Number 0 -
showDefaultLoadingMoreText 是否显示默认的加载更多text,默认为是 Boolean true false
showLoadingMoreNoMoreView 是否显示没有更多数据的view Boolean true false
showLoadingMoreNoMoreLine 是否显示没有更多数据的分割线,默认为是 Boolean true false
loadingMoreNoMoreLineCustomStyle 自定义底部没有更多数据的分割线样式 Object {} -
insideMore 当分页未满一屏时,是否自动加载更多,默认为否(nvue无效) Boolean false true
lowerThreshold 距底部/右边多远时(单位px),触发 scrolltolower 事件,默认为100rpx Number, String 100rpx -

(next-paging)nvue设置

参数名 说明 类型 是否必填 默认值 可选值
nvueListIs nvue中修改列表类型,可选值有list、waterfall和scroller,默认为list String list -
nvueWaterfallConfig nvue waterfall配置,仅在nvue中且nvueListIs=waterfall时有效,配置参数详情参见:https://uniapp.dcloud.io/component/waterfall Object {} -
nvueBounce nvue 控制是否回弹效果,iOS不支持动态修改 Boolean true false
nvueFastScroll nvue中通过代码滚动到顶部/底部时,是否加快动画效果(无滚动动画时无效),默认为否 Boolean false true
nvueListId nvue中list的id String '' -
nvueRefresherStyle nvue中refresh组件的样式 Object {} -
nvuePagingEnabled nvue中是否按分页模式(类似竖向swiper)显示List,默认为false Boolean false true
hideNvueBottomTag 是否隐藏nvue列表底部的tagView,默认为否 Boolean false true
offsetAccuracy nvue中控制onscroll事件触发的频率:表示两次onscroll事件之间列表至少滚动了10px。 Number 10 -
refresher设置
refresherThemeStyle 下拉刷新的主题样式,支持black,white,默认black String black white
refresherImgStyle 自定义下拉刷新中左侧图标的样式 Object {} -
refresherTitleStyle 自定义底部没有更多数据的分割线样式 Object {} -
refresherUpdateTimeStyle 自定义下拉刷新中右侧最后更新时间文字的样式(show-refresher-update-time为true时有效) Object {} -
watchRefresherTouchmove 在微信小程序和QQ小程序中,是否实时监听下拉刷新中进度,默认为否 Boolean false true
loadingMoreThemeStyle 底部加载更多的主题样式,支持black,white,默认black String black white
refresherOnly 是否只使用下拉刷新,设置为true后将关闭mounted自动请求数据、关闭滚动到底部加载更多,强制隐藏空数据图。默认为否 Boolean false true
refresherDefaultDuration 自定义下拉刷新默认状态下回弹动画时间,单位为毫秒,默认为100毫秒,nvue无效 Number 100 -
refresherCompleteDelay 自定义下拉刷新结束以后延迟回弹的时间,单位为毫秒,默认为0 Number 0 -
refresherCompleteDuration 自定义下拉刷新结束回弹动画时间,单位毫秒,默认300毫秒(refresherEndBounceEnabled为false时,refresherCompleteDuration设定值的1/3),nvue无效 Number 300 -
refresherCompleteScrollable 自定义下拉刷新结束状态下是否允许列表滚动,默认为否 Boolean false true
useCustomRefresher 是否使用自定义的下拉刷新,默认为是,即使用next-paging的下拉刷新。 Boolean true false
refresherFps 自定义下拉刷新下拉帧率,默认为40,过高可能会出现抖动问题 Number 40 -
refresherMaxAngle 自定义下拉刷新允许触发的最大下拉角度,默认为40度,当下拉角度小于设定值时,自定义下拉刷新动画不会被触发 Number 40 -
refresherAngleEnableChangeContinued 自定义下拉刷新的角度由未达到最大角度变到达到最大角度时,是否继续下拉刷新手势,默认为否 Boolean false true
refresherDefaultText 自定义下拉刷新默认状态下的文字 String, Object null -
refresherPullingText 自定义下拉刷新松手立即刷新状态下的文字 String, Object null -
refresherRefreshingText 自定义下拉刷新刷新中状态下的文字 String, Object null -
refresherCompleteText 自定义下拉刷新刷新结束状态下的文字 String, Object null -
refresherDefaultImg 自定义下拉刷新松手立即刷新状态下的图片,默认与refresherDefaultImg一致 String '' -
refresherRefreshingImg 自定义下拉刷新刷新中状态下的图片 String '' -
refresherCompleteImg 自定义下拉刷新刷新结束状态下的图片 String '' -
refresherRefreshingAnimated 自定义下拉刷新刷新中状态下是否展示旋转动画 Boolean true false
refresherEndBounceEnabled 是否开启自定义下拉刷新刷新结束回弹效果,默认为是 Boolean true false
refresherEnabled 是否开启自定义下拉刷新,默认为是 Boolean true false
refresherThreshold 设置自定义下拉刷新阈值,默认为80rpx Number, String 80rpx -
refresherDefaultStyle 设置系统下拉刷新默认样式,支持设置 black,white,none,none 表示不使用默认样式,默认为black String black white,none
refresherBackground 设置自定义下拉刷新区域背景 String transparent -
refresherFixedBackground 设置固定的自定义下拉刷新区域背景 String transparent -
refresherFixedBacHeight 设置固定的自定义下拉刷新区域高度,默认为0 Number 0 -
refresherOutRate 设置自定义下拉刷新下拉超出阈值后继续下拉位移衰减的比例,范围0-1,值越大代表衰减越多。默认为0.65(nvue无效) Number 0.65 -
refresherPullRate 设置自定义下拉刷新下拉时实际下拉位移与用户下拉距离的比值,默认为0.75,即代表若用户下拉10px,则实际位移为7.5px(nvue无效) Number 0.75 -
refresherUpdateTimeKey 如果需要区别不同页面的最后更新时间,请为不同页面的next-paging的refresher-update-time-key设置不同的字符串 String default -
showRefresherUpdateTime 是否显示最后更新时间,默认为否 Boolean false true
refresherVibrate 下拉刷新时下拉到“松手立即刷新”状态时是否使手机短振动,默认为否(h5无效) Boolean false true
refresherNoTransform 下拉刷新时是否禁止下拉刷新view跟随用户触摸竖直移动,默认为否。注意此属性只是禁止下拉刷新view移动,其他下拉刷新逻辑依然会正常触发 Boolean false true

(next-paging)scroller设置

参数名 说明 类型 是否必填 默认值 可选值
usePageScroll 使用页面滚动,默认为否, Boolean false true
scrollX 是否允许横向滚动,默认为否 Boolean false true
scrollToTopBounceEnabled iOS设备上滚动到顶部时是否允许回弹效果,默认为否。关闭回弹效果后可使滚动到顶部与下拉刷新更连贯,但是有吸顶view时滚动到顶部时可能出现抖动 Boolean false true
scrollWithAnimation 在设置滚动条位置时使用动画过渡,默认为否 Boolean false true
scrollable 是否可以滚动,使用内置scroll-view和nvue时有效,默认为是。 Boolean true false
showScrollbar 控制是否出现滚动条,默认为是。 Boolean true false
scrollToBottomBounceEnabled iOS设备上滚动到底部时是否允许回弹效果,默认为是。 Boolean true false
scrollIntoView 值应为某子元素id(id不能以数字开头)。设置哪个方向可滚动,则在哪个方向滚动到该元素 String '' -
virtual-list设置
useVirtualList 是否使用虚拟列表,默认为否 Boolean false true
useCompatibilityMode 在使用虚拟列表时,是否使用兼容模式,默认为否 Boolean false true
useInnerList 是否在next-paging内部循环渲染列表(内置列表),默认为否。若use-virtual-list为true,则此项恒为true Boolean false true
forceCloseInnerList 强制关闭inner-list,默认为false,如果为true将强制关闭innerList,适用于开启了虚拟列表后需要强制关闭inner-list的情况 Boolean false true
extraData 使用兼容模式时传递的附加数据 Object {} -
innerListStyle innerList样式 Object {} -
innerCellStyle innerCell样式 Object {} -
preloadPage 预加载的列表可视范围(列表高度)页数,默认为7,即预加载当前页及上下各7页的cell。此数值越大,则虚拟列表中加载的dom越多 Number, String 7 -
virtualListCol 虚拟列表列数,默认为1。常用于每行有多列的情况,例如每行有2列数据,需要将此值设置为2 Number, String 1 -
virtualScrollFps 虚拟列表scroll取样帧率,默认为80,过低容易出现白屏问题,过高容易出现卡顿问题 Number, String 80 -
cellHeightMode 虚拟列表cell高度模式,默认为fixed,也就是每个cell高度完全相同,将以第一个cell高度为准进行计算。可选值【dynamic】 String fixed dynamic
cellKeyName 内置列表cell的key名称,仅nvue有效,在nvue中开启use-inner-list时必须填此项 String '' -

Slot 插槽

名称 说明
top 可以将自定义导航栏、tab-view等需要固定的(不需要跟着滚动的)元素放入slot="top"的view中。注意,当有多个需要固定的view时,请用一个view包住它们,并且在这个view上设置slot="top"。需要固定在顶部的view请勿设置position: fixed;。在使用页面滚动时,若top中的内容动态变化(即高度动态变化),请在高度更新后调用this.$refs.paging.updatePageScrollTopHeight()
bottom 可以将需要固定在底部的(不需要跟着滚动的)元素放入slot="bottom"的view中。注意,当有多个需要固定的view时,请用一个view包住它们,并且在这个view上设置slot="bottom"。需要固定在底部的view请勿设置position: fixed;。在使用页面滚动时,若bottom中的内容动态变化(即高度动态变化),请在高度更新后调用this.$refs.paging.updatePageScrollBottomHeight()
left 可以将需要固定在左侧的(不需要跟着滚动的)元素放入slot="left"的view中。注意,当有多个需要固定的view时,请用一个view包住它们,并且在这个view上设置slot="left"。需要固定在左侧的view请勿设置position: fixed;slot="left"插入的view将夹在slot="top"和slot="bottom"之间,不会盖住它们。如果希望它的高度铺满屏幕,请为插入的view设置height:100%(如果是nvue请设置flex:1),不建议在页面滚动模式下使用slot="left",因为它也会跟着页面滚动。(当left的宽度动态改变时,请在其宽度改变后调用this.$refs.paging.updateLeftAndRightWidth())
right 可以将需要固定在左侧的(不需要跟着滚动的)元素放入slot="left"的view中。注意,当有多个需要固定的view时,请用一个view包住它们,并且在这个view上设置slot="left"。需要固定在左侧的view请勿设置position: fixed;。slot="left"插入的view将夹在slot="top"和slot="bottom"之间,不会盖住它们。如果希望它的高度铺满屏幕,请为插入的view设置height:100%(如果是nvue请设置flex:1),不建议在页面滚动模式下使用slot="left",因为它也会跟着页面滚动。(当left的宽度动态改变时,请在其宽度改变后调用this.$refs.paging.updateLeftAndRightWidth())
refresher 自定义下拉刷新view,设置后则不使用uni自带的下拉刷新view和z-paging自定义的下拉刷新view。此view的style必须设置为height:100%(在非nvue中,自定义下拉刷新view的高度受refresher-threshold控制,因此如果它的高度不为默认的80rpx,则需要设置refresher-threshold="自定义下拉刷新view的高度")slot-scope="{ refresherStatus(0-默认状态 1.松手立即刷新 2.刷新中 3.刷新成功) }"
refresherComplete 自定义结束状态下的下拉刷新view,若设置,当下拉刷新结束时,会替换当前状态下的下拉刷新view。(注意:默认情况下您无法看到结束状态的下拉刷新view,除非您设置了refresher-complete-delay并且值足够大,例如:500)
loadingMoreDefault 自定义滑动到底部"默认"状态的view(即"点击加载更多view")(自定义插入时默认点击无法加载更多,若需要实现点击加载更多,请为插入的view添加点击事件,并在点击事件中调用this.$refs.paging.doLoadMore('click'))
loadingMoreLoading 自定义滑动到底部"加载中"状态的view
loadingMoreLoading 自定义滑动到底部"没有更多数据"状态的view
loadingMoreFail 自定义滑动到底部"加载失败"状态的view
empty 自定义空数据占位view slot-scope="{ isLoadFailed(true: 加载失败,false: 加载成功) }"
loading 自定义页面reload时的加载view,注意:这个slot默认仅会在第一次加载时显示,若需要每次reload时都显示,需要将auto-hide-loading-after-first-loaded设置为false
backToTop 自定义点击返回顶部view(此view受“【返回顶部按钮】配置”控制,且其父view默认宽高为76rpx)
cell use-virtual-list或use-inner-list为true时有效 内置列表中的cell slot-scope="{ item, index }"
header use-virtual-list或use-inner-list为true时有效 内置列表中的header(在cell顶部且跟随列表滚动)
footer use-virtual-list或use-inner-list为true时有效 内置列表中的footer(在cell底部且跟随列表滚动)
chatLoading 使用聊天记录模式时自定义顶部加载更多view,use-chat-record-mode为true时有效

预览


普通模式演示 虚拟列表模式演示

参考

本插件基于z-paging进行二开,有需要的可以直接访问原版,可能后续功能会存在差异

参考 z-paging 一个uni-app (opens new window)分页组件

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问