uniapp上拉加载、下拉刷新

我这个是自定义header、main、和footer的布局,是盒子中的上拉加载、下拉刷新,不是页面的,废话不说,直接上代码!

html 复制代码
<template>
  <view class="assembly">
    <u-navbar title="个人中心" @leftClick="leftClick" :autoBack="true">
    </u-navbar>
    <view class="main">
      <scroll-view
        scroll-y
        class="scrollbox"
        @scrolltolower="lower"
        refresher-enabled="true"
        :refresher-triggered="trigger"
        @refresherrefresh="refresherrefresh"
        show-scrollbar="false"
      >
        <text
          style="line-height: 40px; display: block"
          v-for="(item, index) in 20"
          >{{ index }}</text
        >
        <view class="loading-wrap">
          <view class="loading-text" v-if="loadingFlag == 1"
            >数据加载中...</view
          >
          <view class="loading-text" v-if="loadingFlag == 2"
            >没有更多的数据...</view
          >
        </view>
      </scroll-view>
    </view>
    <view class="footer-bar"></view>
  </view>
</template>
<script>
export default {
  data() {
    return {
      trigger: false,
      loadingFlag: 1,
    };
  },
  methods: {
    leftClick() {
      console.log("返回上一页");
    },
    // 上拉加载
    lower() {
      console.log("触底加载11");
    },
    // 下拉刷新
    refresherrefresh() {
      const _that = this;
      this.trigger = true;
      setTimeout(() => {
        _that.trigger = false;
      }, 3000);
    },
  },
};
</script>
<style lang="scss">
.assembly {
  width: 100vw;
  height: 100vh;

  // 头部返回
  ::v-deep .u-navbar {
    height: 50px;
  }

  // 内容
  .main {
    width: 100%;
    height: calc(100vh - 50px - 50px);
    background-color: pink;
    overflow: auto;

    // 这个是scroll-view的盒子样式,必须要有,要不然不会触发 触底滚动事件
    .scrollbox {
      width: 100%;
      height: 100%;
    }

    // 加载更多
    .loading-wrap {
      width: 100%;
      height: 30px;
      background-color: yellow;

      .loading-text {
        font-size: $uni-size-loading-text;
        text-align: center;
        line-height: 30px;
      }
    }
  }

  // 页脚
  .footer-bar {
    width: 100%;
    height: 50px;
    background-color: red;
    position: fixed;
    bottom: 0;
    right: 0;
  }
}
</style>
相关推荐
明月_清风1 小时前
小程序云函数:从入门到全栈的“降维打击”指南
前端·微信小程序·小程序·云开发
wuhen_n1 小时前
告别 Options API:为什么 Composition API 是逻辑复用的未来?
前端·javascript·vue.js
明月_清风1 小时前
前端异常捕获:从“页面崩了”到“精准定位”的实战架构
前端·javascript·监控
wuhen_n1 小时前
高效的数据解构:用 toRefs 和 toRef 保持响应性
前端·javascript·vue.js
小兵张健12 小时前
价值1000的 AI 工作流:Codex 通用前端协作模式
前端·aigc·ai编程
sunny_12 小时前
面试踩大坑!同一段 Node.js 代码,CJS 和 ESM 的执行顺序居然是反的?!99% 的人都答错了
前端·面试·node.js
拉不动的猪12 小时前
移动端调试工具VConsole初始化时的加载阻塞问题
前端·javascript·微信小程序
ayqy贾杰14 小时前
Agent First Engineering
前端·vue.js·面试
IT_陈寒14 小时前
SpringBoot实战:5个让你的API性能翻倍的隐藏技巧
前端·人工智能·后端
iceiceiceice15 小时前
iOS PDF阅读器段评实现:如何从 PDFSelection 精准还原一个自然段
前端·人工智能·ios