vant ui中 PullRefresh and List

需求:展示(用户)账户的明细,需要懒加载和下拉刷新效果(List实现懒加载,PullRefresh实现下拉刷新)

html:


<van-pull-refresh v-model="isLoading" @refresh="onRefresh">

                  <van-list

                    v-model="loading"

                    :offset="300"

                    :finished="finished"

                    @load="onLoad"

                  >

                    <div class="blancetransation-alldetail-items" v-for='(item,index) in userblansedatalist'>

                        <div  class="blancetransation-alldetail-items-left">

                          <div class="blancetr transaclianbei1" v-if="item.status">收</div>

                          <div class="blancetr transaclianbei2" v-else>支</div>

                          <div class="blance-center-div">

                              <p class="blancetransation-expenditure">{{item.desc}}</p>

                              <p class="blancetransation-time">{{item.time}}</p>

                          </div>

                        </div>

                        <div class="blancetransation-alldetail-items-right">

                          <p class="blancetransation-amount">

                            <span v-if="item.status" style="color:#F74C4C">+{{item.amount}}元</span>

                            <span v-else style="color:#7CAAFF">-{{item.amount}}元</span>

                          </p>

                        </div>

                    </div>

                  </van-list>

              </van-pull-refresh>

js


onLoad() {

          // 异步更新数据

          setTimeout(() => {

            this.getblancedetail()

            // 加载状态结束

            this.loading = false;

          }, 500);

      },

      onRefresh () {

            this.blancecurrengpage = 0

            // this.pages = 1

            this.userblansedatalist = []

            // this.sendRequstForBuy()

            setTimeout(() => {

            this.userblansedatalist = []

            this.isLoading = false

            this.getblancedetail()

            }, 300)

        },

请求后台数据

if (this.blancecurrengpage!=0 && this.blancecurrengpage*7>=this.userblansedata.listCount) {
            return
        }
        this.blancecurrengpage = this.blancecurrengpage + 1
        
         this.postJsonRequest('/*******/api/json', {
            'method': '*****',
            'data':{
                "currPage":this.blancecurrengpage,
                "pageSize":7
            }
          }).then(respond => {
            console.log(respond)
            if (respond.status === 200) {
              if (respond.data.code === 200) {
                this.userblansedata = respond.data.result
                // this.userblansedatalist = respond.data.result.detailList

                this.userblansedatalist = this.userblansedatalist.concat(respond.data.result.detailList)
                console.log(this.userblansedatalist)

                // 数据全部加载完成  停止懒加载
                console.log(this.userblansedata.listCount)
                if (this.blancecurrengpage*7>=this.userblansedata.listCount) {
                   this.finished = true;
                   console.log('加载完成')
                }
                
              } else {
                console.log(respond.data.message)
                this.finished = true;
              }
            }else{
            console.log(respond.code)
            this.finished = true;
            }

          }
        )

总结:
1,List:在请求完后台所给的总条数,把finished设置为true;在调用接口的时候判断,如果已经显示完所有数据,就不调用接口;延迟的时间可以设置短一点,0.5s;offset属性,表示在距离底部多少像素的时候,开始加载数据;请求数据的页数,初始值为0;
2,PullRefresh:把请求的页码设置为0,需要遍历的数据设置为空,延迟的时间设置为0.2s

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,030评论 3 119
  • 今天我要来和大家谈一谈一个挺矛盾的东西叫科学地保护动物,同时尊重饮食文化习俗,而且我大概感觉到等我写完发表说不定会...
    wujie988阅读 1,184评论 0 1
  • 你是迁徙的雁 你是梦中的昙花一现 你是无声岁月让人震耳欲聋的想念 你是回忆 是过去 是我烟瘾难医久病难愈
    哀慕熙荣阅读 145评论 0 0
  • 牌是这样的。说明我的潜意识已经做好准备,并且非常确定。意识层面还有清理伤感和压抑的工作没有完全完成。我准备好冲锋陷...
    帽人Walt阅读 347评论 0 0
  • 曾几何时,已经忘记了最初的自己,世界带给了我们什么,是真正的成长,还是虚伪的表演,生活中每一个人都在表演,表演着怎...
    冁鄹阅读 393评论 0 0