移动端分页实现

在PC端,我们一般使用点击分页器的页数来实现网络请求重新渲染表格的效果。但是在实现移动端的分页需要先实现触底函数,滑动到页面底部时触发事件。

在uniapp中有一个scroll-view组件,用于实现滑动视图。我们可以在滑动视图上,设置@scrolltolower事件,滑动到视图底部时触发函数。
当然也可以在页面使用uniapp封装的onReachBottom触底函数可以直接使用。
tips:
页面的触底函数和滚动视图的触底函数最好不要同时使用,滑动的时候你不知道触发了哪个。

前端移动端分页查询所需要几个条件:

  • page(当前页数)
  • limit(一页中显示的数据条数)
  • total(总数据量)
  • more(是否还有更多数据)

我们先在响应式数据里定义这几个变量

      page: 1, //从第一页开始
      total: 0,
      more: true, //是否还有更多数据

然后在网络请求里使用

    /**
     * 获取当前账号的车辆信息列表
     */
    async fetch() {
      try {
        const res = await myRequest({
          url: "downstream_firm/get_vehicle_list",
          data: {
            xydm: this.loginObj.xydm,
            page: this.page,
            limit: 8,
          },
        })
        if(res.data.status == 200){
          if(res.data.data.list.length <= 8){
            this.more=false
          }
          //将已有的矿产品数组,和当前页的矿产品列表合并成一个新的数组
          this.cartableList = [...this.cartableList,...res.data.data.list]
          this.total=res.data.data.count //更新总数据total的值
        }
      } catch (err) {
        console.log(err);
      }
    },

然后我们在触底函数/滚动视图函数中做判断,判断是否还有数据,并做处理。

  onReachBottom() {
			if(this.total <= this.page*8) return  //如果当前渲染的数据总数,小于或等于总数据量,则代表无数据,跳出函数。
            this.page++ //当前页面+1,加载下一页的数据
			this.more=!this.more //存在数据
			this.fetch() //重新调取网络请求
		}

为了用户方便查看,我们也可以写提示,用来提醒用户当前有无数据。

      <view class="no_data" v-show="more">加载更多...</view>
      <view class="no_data" v-show="!more">--暂无更多数据--</view>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

CaryJohnson

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值