# 下拉刷新上拉加载 ScrollPullEffect
下拉刷新上拉加载组件
# 示例代码
- 基本使用
<via-scroll-pull-effect
id="via-scroll-pull-effect-id"
bind:onPullDown="handlePullDown"
bind:onPullUp="handlePullUp"
height="500"
>
<view class="item-card" wx:for="{{list}}" wx:key="unique">
{{index+1}}
</view>
</via-scroll-pull-effect>
- 分页使用
/**
* 分页接口返回的数据结构
* @param {*} params
*/
const requestApi = (params)=>{
return new Promise((revose,reject)=>{
const nexPage = {
data:{
list:params.pageNum ==3 ? []:[0,1,2,3,4,5,6,7,8,9],
hasNextPage:params.pageNum ==3 ? false : true
}
}
setTimeout(()=>{
revose(nexPage)
},1000)
})
}
Page({
data: {
list:[]
},
async onLoad(){
this.$scrollEffect = this.selectComponent('#via-scroll-pull-effect-id')
this.$scrollEffect.initPage({},requestApi)
const { list } = await this.$scrollEffect.initLoadData()
this.setData({list})
},
async handlePullDown(){
const { list } = await this.$scrollEffect.pullDownLoad()
this.setData({list})
this.$scrollEffect.stopPullDownRefresh()
},
async handlePullUp(){
const { list } = this.data
const nexList = await this.$scrollEffect.pullUpLoad()
console.log('nexList:',nexList)
this.setData({list:list.concat(nexList)})
},
});
# 属性
属性 | 说明 | 类型 | 默认值 | 备注 |
---|---|---|---|---|
height | scroll高度 | Number | - | 如果没有传值,者为屏幕高度 |
autoCloseFresh | 是否开启自动下拉刷新关闭 | Boolean | true | 5s自动关闭 |
# 外部样式类
类名 | 说明 | 备注 |
---|---|---|
- | - | - |
# 插槽
名称 | 说明 | 备注 |
---|---|---|
- | - | 滚动内容 |
# 事件
名称 | 说明 | 返回值 | 备注 |
---|---|---|---|
onScroll | 滚动监听事件 | - | - |
onPullDown | 下拉触发事件 | - | - |
onPullUp | 上拉触发事件 | - | - |
# 方法
通过 selectComponent 可以获取到 ScrollPullEffect 实例,并调用实例方法
方法名 | 说明 | 参数 | 返回值 |
---|---|---|---|
setPageLoading | 设置页面加载状态 | - | - |
setPageError | 设置页面错误状态 | - | - |
setPageEmpty | 设置页面空状态 | - | - |
initPage | 初始化分页函数 | 请求参数, 请求 Promise 函数 | - |
pullDownLoad | 下拉触发函数 | 参数,处理函数,回调 | list |
pullUpLoad | 上拉触发函数 | 参数,处理函数,回调 | list |
stopPullDownRefresh | 下拉停止函数 |