vant van-tabs van-pull-refresh van-list 标签栏+上拉加载+下拉刷新

复制代码
<template>
  <div class="huibj">
    <div class="listtab">
      <!--顶部导航-->
      <div class="topdh">
        <topnav topname="余额明细"></topnav>
      </div>
      <!--Tab 标签-->
      <van-tabs v-model="yeactive"
                @change="Tabnav">
        <van-tab v-for="(item,index) in yetabList"
                 :key="index"
                 :title="item.title"
                 :name="item.name">
        </van-tab>
      </van-tabs>
    </div>
    <div class="ye_mxlist">
      <van-pull-refresh
        v-model="ye_isLoading"
        success-text="刷新成功"
        @refresh="ye_onRefresh">
        <van-list
          v-model="ye_loading"
          :finished="ye_finished"
          finished-text="-- END --"
          @load="ye_onLoad">
          <van-cell v-for="(item,index) in ye_list" :key="index">
            <div class="ye_dljl_mx" @click="goyuemx(item)" style="height: 40px">
              {{index}}
            </div>
          </van-cell>
        </van-list>
      </van-pull-refresh>
    </div>
  </div>
</template>
<script>
//以下是组件  #
import topnav from '@/components/topnav/topnav'; //顶部导航

export default {
  name: 'yemxZ',
  data() {
    return {
      //Tab 标签
      yetabList: [
        {
          title: "aa",
          name: "0"
        },
        {
          title: "bb",
          name: '1'
        },
        {
          title: "cc",
          name: '2'
        },
      ],
      yeactive: '0', //tab默认值
      //上拉加载下拉刷新
      ye_isLoading: false, //是否下拉刷新
      ye_loading: false,//是否处于加载状态
      ye_finished: false, //	是否已加载完成
      ye_list: [],
    };
  },
  components: {
    topnav,
  },
  mounted() {
    //this.getData()
  },
  methods: {
    //tab切换
    Tabnav() {
      console.log(2)
      console.log(this.yeactive)
    },
    //下拉刷新
    ye_onRefresh() {
      let that=this
      setTimeout(() => {
        that.ye_isLoading = false;
        that.ye_onLoad();
      }, 1000);
    },
    ye_onLoad() {//   滚动条与底部距离小于 offset 时触发  offset可以自定义
      setTimeout(() => {
        for (let i = 0; i < 10; i++) {
          this.ye_list.push(this.ye_list.length + 1);
        }
        this.ye_loading = false;
        if (this.ye_list.length >= 40) {
          this.ye_finished = true;
        }
      }, 1000);
    },

    goyuemx(val) {
      console.log(5)

    }
  }
};
</script>

<style scoped>

</style>
相关推荐
Bug收容所10 小时前
Vue+js Day2
前端·javascript·vue.js
掘金酱11 小时前
带着作品来,坐下来聊|掘金 X-lab · Coffee Talk 邀请你来见一面
前端·javascript·后端
FY@-@11 小时前
VMware ESXi 7.0 实验全记录:嵌套安装 → 网络配置 → 存储 → Windows 10 虚拟机部署
运维·网络·windows·云计算
数据狐(Datafox)12 小时前
一文读懂京东商品详情API:返回字段解读与 JSON 样例
java·开发语言·数据库·windows·json
honkun612 小时前
vue 下拉树组件 vxe-table-select 实现分页多选
前端·javascript·vue.js
大熊程序猿13 小时前
用 ASP.NET Core + SignalR 做一个带实时对战房间的打字练习平台
javascript
OpsEye13 小时前
大量无效 Token 消耗,是很多企业被忽略的隐形成本
javascript·ai编程
富洋金锐14 小时前
使用nssm创建windows服务
windows
tryCbest14 小时前
宝塔 Windows 面板安装使用
windows·宝塔·服务面板
政在远航14 小时前
看不见的后门:Windows入侵深度排查思路|2026应急响应实操
windows·windows 入侵·windows 入侵排查·漏洞加固