简单实现个vue的下拉加载

1代码文本片段

  v-infinite-scroll="loadMore" infinite-scroll-disabled="busy" infinite-scroll-distance="10"

一些参数的解释 , 有助于代码的理解

 

<div v-infinite-scroll="loadMore" infinite-scroll-disabled="busy" infinite-scroll-        
    distance="10">
    <table class="bordeoBm pt15 pb15" v-for="(item, index) in editionData" :key="index">
        <tr>
            <th class="width60 pl15 borM" align="left" valign="top">{{item.number}}</th>
            <div class="pl15 padd" v-for = "(list,index) in item.content.length"                 
                 :key="index">{{item.content[list]}}
            </div>
        </tr>
    </table>
    <div class="loading tac" v-if="busy">加载中…</div>
    <div class="loading tac" v-if="endMore">没有更多了</div>
</div>

2主要方法实现

  methods: {
    /* 加载方法 */
    loadMore () {
      let self = this
      self.busy = true
      self.endMore = false
      if (self.totalPage === self.page) {
        self.busy = false
        if (self.totalPage !== 1) {
          self.endMore = true
        }
        return false
      }
      self.page += 1
      setTimeout(() => {
        self.editionList()
      }, 1000)
    },
    /* 对应的接口调试方法 */
    editionList (cb) {
      let self = this
      edition.editionList(function (response, page ,size) {
        if (response) {

          /* data是array类型 */

          self.editionData = response.data.data
          let res = response.data
          self.editionData = self.editionData.concat(res.data)
          self.totalPage = Math.ceil(res.total / self.size)
          self.busy = false

          /* data非array类型,需要先转化成array类型 */

          /* let res = JSON.parse(response.data)
          self.list = self.list.concat(res.data)
          self.totalPage = Math.ceil(res.total / self.size)
          self.busy = false */
        }
      }, self.page, self.size)
    }
  }

3.data里默认的一些参数设置

      editionData: [],
      busy: false,
      totalPage: false,
      endMore: false,
      page: 0,
      size: 12

4.最后再给一点样式吧

.borM{border-bottom:1px solid #328DFE;}
table.bordeoBm{border-bottom:1px solid #E3E3E3;width:100%;}
/* div.pl15.padd{margin-left: 85px;} */
div.pl15.padd:first-child{padding-top: 15px;}
div.pl15.padd:last-child{padding-bottom: 40px;}
table.bordeoBm{margin:40px 0;font-size: 14px;line-height:20px;}

这样一个简单的下拉加载基本就实现了。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端e站

如果有所帮助,欢迎来杯奶茶

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值