发现小程序中很多列表都需要上拉加载分页,每个页面都需要维护各种状态,心智负担太大,想写个自定义hook。大概的实现想法如下,我太菜了写不出来,求大佬来解(用的taro+react,不是vue哦)
const { data,isLoad,loading,getNextPageData,refresh } = usePageData({
api:WorkOrderApi.getClientWorkOrderList, //后端的列表请求方法
params:{
page:1,
pageSize:10
}, //需要携带的参数
});
data:列表数据,
getNextPageData:上拉加载时调用此方法,自增page,将请求的数据合并到data,并页面更新data,getNextPageData可以传额外的参数 如果传了page按传的,没传按自增的
refresh:重新用初始参数加载
isLoad:是否加载完全,可以用后端返回的total判断或者用每次getNextPageData请求的返回的数据是否小于pageSize 如果加载完全 返回true并且调getNextPageData不生效
loading:是否加载中
tanstack-query
这个库你可以试试