uniapp中的下拉刷新和上拉加载

uniapp中的下拉刷新和上拉加载上拉加载 uniapp中的上拉加载是通过onReachBottom()这个生命周期函数实现,当下拉触底时就会触发。当请求分页数据时,则通过这个函数进行加载。此时可以利用全局变量pageIndex首次赋

上拉加载

uniapp中的上拉加载是通过onReachBottom()这个生命周期函数实现,当下拉触底时就会触发。当请求分页数据时,则通过这个函数进行加载。此时可以利用全局变量pageIndex首次赋值为1来进行参数的传递,当下拉加载下一页时,则让this.pageIndex++。

  //部分代码
  data(){
    return {
       pageIndex:1,
       list:[]
     }
  },
  methods:{
     getList(){
       uni.request({
        url:"/api/getGoods?pageindex="+this.pageIndex
       },succcess:res=>{
           this.list=res.data.message
       })
     }
  }

但此时有一个问题:当获取下一页数据时,之前的数据消失,所以,应该将之前数据保留,所以使用扩展运算符,将数据展开放到数组里。成功后的函数应该写为:this.list=[…this.list,…res.data.message]

此外,还有一个问题,当下拉刷新时需要判断下一页还有没有数据,不能一直刷新请求。若后台返回总条数total,则用总数对10取余,若不为0,则return。若后台没有返回总条数,则需要使用this.list.length来判断,判断函数可写为:if(this.list.length<this.pageIndex*10) return

上拉刷新

在page.json中开启刷新(enablePullDownRefresh:true),监听下拉刷新函数为onPullDownRefresh(),当触发下拉刷新时

   //将this.pageIndex = 1,初始化
  onPullDownRefresh(){
     this.pageIndex = 1
     this.list=[]
     //优化体验,延迟刷新,当刷新完毕后关掉刷新
     setTimeOut(()=>{
        this.getList(()=>{
           uni.stopPullDownRefresh()
        })
     },1000)
  }
  //通过callback接收回调函数
   getList(callback){
       uni.request({
        url:"/api/getGoods?pageindex="+this.pageIndex
       },succcess:res=>{
           this.list=[...this.list,...res.data.message]
           callBack&&callBack()
       })
     }

今天的文章uniapp中的下拉刷新和上拉加载分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/16921.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注