Skip to content

LongList 长列表

提示

一次性初始化太多列表项,因为创建大量 vnode 耗时,会导致列表初始化变慢。此时推荐使用官方的扩展组件 uni-recycle-view 来解决初始化慢的问题,该组件内部会分批创建节点,自动实现节点复用。

基础用法

  • 用于显示大量同类信息。
  • Longlist 本身只是容器,不预设任何样式。在 Android 端基于 recycle-view,性能优秀(设置固定的高度才支持高性能滚动)。
  • 子组件为 list-item
vue
<template>
	<sn-longlist></sn-longlist>
</template>

属性

参数说明类型默认值可选值
associativeContainer关联的滚动容器。同 list-viewString--
bounces是否启用回弹效果。同 list-viewBooleanfalsetrue | false
upperThreshold距顶部/左边多远时(单位px),触发 scrolltoupper 事件。同 list-viewNumber50-
lowerThreshold距底部/右边多远时(单位px),触发 scrolltolower 事件。同 list-viewNumber50-
scrollTop设置竖向滚动条位置。同 list-viewNumber0-
showScrollbar是否显示滚动条。同 list-viewBooleanfalsetrue | false
scrollIntoView值应为某子元素id(id不能以数字开头)。设置哪个方向可滚动,则在哪个方向滚动到该元素起始位置。同 list-viewString--
scrollWithAnimation是否在设置滚动条位置时使用滚动动画,设置 false没有滚动动画。同 list-viewBooleantruetrue | false
refresherEnabled开启下拉刷新,暂时不支持 scroll-x = true 横向刷新。同 list-viewBooleanfalsetrue | false
refresherThreshold设置下拉刷新阈值, 仅 refresher-default-style = 'none' 自定义样式下生效。同 list-viewNumber45-
refresherMaxDragDistance设置下拉最大拖拽距离(单位px)。Number100-
refresherBackground设置下拉刷新区域背景颜色,默认透明。同 list-viewStringtransparent-
refresherTriggered设置当前下拉刷新状态,true 表示下拉刷新已经被触发,false 表示下拉刷新未被触发。同 list-viewBooleanfalse-
backtop是否显示回到顶部的按钮Booleantruetrue | false
loadmore是否显示加载更多的组件Booleantruetrue | false
refresherDefaultStyle设置下拉刷新默认样式,none 表示不使用默认样式;App 端固定为 noneStringwhitewhite | black | none
loadmoreStatus加载更多组件的状态Stringloadmoreloading | nomore | loadmore
loadmoreConfig加载更多组件的配置SnLoadmoreParams{}-
refresherConfig下拉刷新组件的配置SnRefresherParams{}-
customNestedScroll子元素是否开启嵌套滚动 将滚动事件与父元素协商处理同 list-viewBooleanfalsetrue | false
customStyle自定义滚动列表样式UTSJSONObject{}-

插槽

名称说明
default用于放置子组件 list-item

事件

名称类型说明
loadmore() => void加载更多时触发
scrolltoupper(e: UniScrollToUpperEvent) => void滚动到顶部时触发
scrolltolower(e: UniScrollToLowerEvent) => void滚动到底部时触发
scroll(e: UniScrollEvent) => void滚动时触发
scrollend(e: UniScrollEvent) => void滚动结束时触发
refresherpulling(event: UniRefresherEvent) => void下拉刷新控件被下拉
refresherrefresh(event: UniRefresherEvent) => void下拉刷新被触发
refresherrestore(event: UniRefresherEvent) => void下拉刷新被复位
refresherabort(event: UniRefresherEvent) => void下拉刷新被中止

使用 MIT 协议