t-list
List 列表
组件介绍
长列表组件,list-view组件的增强版,增加自定义下拉刷新和上拉加载,增加WEB端和IOS端支持【scrollend】事件。
平台兼容
| Harmony | H5 | Android | iOS | 小程序 | UTS |
|---|---|---|---|---|---|
| ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
基础用法
vue
<template>
<t-list
ref="listRef"
:loadmore="true"
:refresherEnabled="true"
@refresherrefresh="onRefresh"
@scrolltolower="onLoadMore"
>
<t-list-item v-for="(item, index) in listData" :key="index">
<t-cell :title="item.title" :value="item.value"></t-cell>
</t-list-item>
</t-list>
</template>
<script setup>
const listRef = ref(null);
const listData = ref([
{ title: 'Item 1', value: 'Value 1' },
{ title: 'Item 2', value: 'Value 2' },
{ title: 'Item 3', value: 'Value 3' },
]);
function onRefresh() {
// 下拉刷新逻辑
setTimeout(() => {
listRef.value.closerefresher();
}, 1000);
}
function onLoadMore() {
// 上拉加载更多逻辑
listRef.value.setLoadmore(1); // 加载中
setTimeout(() => {
listRef.value.setLoadmore(0); // 加载完成
}, 1000);
}
</script>Props
| 属性名 | 类型 | 默认值 | 说明 | 可选值 |
|---|---|---|---|---|
| size | String | "medium" | 组件尺寸 | large, medium, small, mini |
| type | String | "primary" | 组件类型 | info, primary, error, warning, success |
| disabled | Boolean | false | 组件是否禁用 | true, false |
| hover | Boolean | false | 是否有点击效果 | true, false |
| path | String | "" | 点击组件后跳转的页面路径 | - |
| effect | String | "normal" | 组件显示主题 | normal, dark, light, plain |
| loadmore | Boolean | true | 是否显示加载更多 | true, false |
| refresherEnabled | Boolean | true | 是否禁用下拉刷新 | true, false |
| loadmoreBoxClass | String | "" | 加载更多盒子的样式 | - |
| refresherBoxClass | String | "" | 下拉刷新盒子的样式 | - |
| direction | String | "vertical" | 滚动方向 | vertical |
| associativeContainer | String | "" | 关联的滚动容器 | nested-scroll-view |
| bounces | Boolean | true | 控制是否回弹效果 | true, false |
| upperThreshold | Number | 50 | 距顶部多远时触发scrolltoupper事件 | - |
| lowerThreshold | Number | 50 | 距底部多远时触发scrolltolower事件 | - |
| scrollTop | Number | 0 | 设置竖向滚动条位置 | - |
| scrollLeft | Number | 0 | 设置横向滚动条位置 | - |
| scrollIntoView | String | "" | 值应为某子元素id | - |
| scrollWithAnimation | Boolean | false | 是否使用滚动动画 | true, false |
| refresherThreshold | Number | 100 | 设置下拉刷新阈值 | - |
| showScrollbar | Boolean | false | 控制是否出现滚动条 | true, false |
| customNestedScroll | Boolean | false | 子元素是否开启嵌套滚动 | true, false |
| backtop | Boolean | false | 是否显示返回顶部 | true, false |
| refresherBackground | String | "transparent" | 设置下拉刷新区域背景颜色 | - |
| maskClass | String | "" | 遮罩层样式 | - |
Events
| 事件名 | 说明 | 回调参数 |
|---|---|---|
| refresherpulling | 下拉刷新控件被下拉 | RefresherEvent |
| refresherrefresh | 下拉刷新被触发 | RefresherEvent |
| refresherrestore | 下拉刷新被复位 | RefresherEvent |
| refresherabort | 下拉刷新被中止 | RefresherEvent |
| scrolltoupper | 滚动到顶部/左边 | ScrollEvent |
| scrolltolower | 滚动到底部/右边 | ScrollEvent |
| scroll | 滚动时触发 | ScrollEvent |
| scrollend | 滚动结束时触发 | ScrollEvent |
| click | 点击时触发 | - |
| transitionend | 动画结束时触发 | - |
| initFinished | 组件初始化完成触发 | 组件的节点信息 |
| touchstart | 触摸开始时触发 | 触摸事件对象 |
| touchend | 触摸结束时触发 | 触摸事件对象 |
Methods
| 方法名 | 说明 | 参数 | 返回值 |
|---|---|---|---|
| setLoadmore | 设置加载更多状态 | status: number | 无 |
| showMask | 显示遮罩层 | 无 | 无 |
| hideMask | 隐藏遮罩层 | 无 | 无 |
| closerefresher | 关闭下拉刷新 | 无 | 无 |
Slots
| 插槽名 | 说明 |
|---|---|
| default | 内容插槽,用于放置t-list-item子组件 |
| loadmore | 加载更多插槽,用于自定义加载更多内容 |
| refresher | 下拉刷新插槽,用于自定义下拉刷新内容 |
| mask | 遮罩层插槽,用于自定义遮罩层内容 |