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

这篇具有很好参考价值的文章主要介绍了vant van-tabs van-pull-refresh van-list 标签栏+上拉加载+下拉刷新。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

<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>

增加分页:文章来源地址https://www.toymoban.com/news/detail-643238.html

<template>
  <div class="huibj">
    <div class="listtab">

      <!--Tab 标签-->
      <van-tabs v-model="yeactive" color="#f59a23" title-active-color="#f59a23"
                @change="Tabnav">
        <van-tab v-for="(item,index) in yetabList"
                 :key="index"
                 :title="item.title"
                 :name="item.namep">
        </van-tab>
      </van-tabs>
    </div>
    <div class="ye_mxlist">
      <van-pull-refresh
        v-model="isRefresh"
        success-text="刷新成功"
        @refresh="onRefresh">
        <van-empty v-if="total == 0" description="暂无数据" />
        <van-list
          v-model="loadingMore"
          :finished="isfinished"
          finished-text="-- END --"
          @load="onLoadMore">
          <van-cell v-for="(item,index) in dataList" :key="index">
            <div class="ye_dljl_mx" @click="goyuemx(item)" style="height: 40px">
                <div class="ye_dljl">
                  <p class="ye_dljl_mc">{{item.dealReasonStr}}</p>
                  <p class="ye_dljl_sj">{{item.dealTime}}</p>
                </div>
                <div :class="item.dealType == 1 ? 'ye_jemx ye_add_je':'ye_jemx'">{{item.dealType == 1 ? '+': '-'}}
                  {{item.dealAmount/100}}
                </div>
            </div>
          </van-cell>
        </van-list>
      </van-pull-refresh>
    </div>
  </div>
</template>
<script>

//新的路径josn
import axios from '@/utils/axios';
import url from '@/ui/URL.js';
//新的路径josn end
export default {
  name: 'yemxZ',
  data() {
    return {
      //Tab 标签
      yetabList: [
        {
          title: "全部",
          name: "0"
        },
        {
          title: "收入",
          name: '1'
        },
        {
          title: "支出",
          name: '2'
        },
      ],
      yeactive: '0', //tab默认值
      //上拉加载下拉刷新
      isRefresh: false, //是否下拉刷新
      loadingMore: false,// 加载更多是否显示加载中
      isfinished: false, //	加载是否已经没有更多数据
      dataList: [],//列表
      total: 1,
      pageNum: 0,
      pageSize:10,
    };
  },
  components: {
    topnav,
  },
  mounted() {
  },
  methods: {
    //tab切换
    Tabnav() {
      this.dataList=[];
      this.pageNum=0;
      this.isfinished=false; //	加载是否已经没有更多数据
      this.backtop();
    },
    //下拉刷新
    onRefresh() {
      this.isfinished=true; //	加载是否已经没有更多数据
      this.dataList=[]; // 清空列表数据
      this.pageNum=1;
      this.getList();
    },
    //加载更多
    onLoadMore() {
      console.log('加载更多')
      this.pageNum++;
      this.getList();
    },
    // 获取列表
    getList() {
      //模拟
      // setTimeout(() => {
      //   for (let i = 0; i < 2; i++) {
      //     this.dataList.push(this.dataList.length + 1);
      //   }
      //   this.loadingMore = false;
      //   if (this.dataList.length >= 6) {
      //     this.isfinished = true;
      //   }
      // }, 1000);
      let that=this;
      let bdlx=this.yeactive == 0 ? '': this.yeactive;
      //变动类型:1收入,2支出
      let csData={
        pageNum:that.pageNum,
        pageSize:that.pageSize,
        dealType:bdlx
      };
      axios
        .ajax({
          method: 'get',
          url: url.zzzzz.xxxx,
          params:csData
        })
        .then((res) => {
          if (res.success) {
            // 加载状态结束
            this.loadingMore = false;
            this.isRefresh=false;  //是否下拉刷新
            //数据追加到列表
            if (this.pageNum > 1) {
              this.dataList = this.dataList.concat(res.data.list)
            } else {
              this.dataList = res.data.list
            }
            this.total=res.data.total;
            if (this.total <= this.dataList.length) {
              console.log("没有更多")
              this.isfinished = true
            }else{
              this.isfinished = false
            }
          } else {
            this.$toast(res.message);
          }
        });
    },
    //返回顶部
    backtop () {
      document.documentElement.scrollTop=0
    },
    //说额明细
    goyuemx(val) {
      this.$router.push('yemxxqZ');
    }
  }
};
</script>

<style scoped>

</style>

到了这里,关于vant van-tabs van-pull-refresh van-list 标签栏+上拉加载+下拉刷新的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序(van-tabs) 去除横向滚动条样式(附加源码解决方案+报错图)

    今天第一次接触 vant 组件库。 ant官网地址 适用于Vue3 支持 Vue2 、 Vue3 、 微信小程序等 我在使用van-tabs组件时遇到了一个问题,如下图所示: 从图片上可以看到有个灰色的横向滚动条,一开始领导给我说这个问题,我反反复复都没有测出来,在微信开发者工具、IOS系统都没有

    2024年02月10日
    浏览(39)
  • vant框架van-field

    采用样式穿透的方式,上代码: 添加外边框 换行

    2024年02月13日
    浏览(28)
  • vant 组件van-tabbar实现底部导航

    移动端小白,首次尝试移动H5开发,使用vant2的van-tabbar实现底部导航功能。本文忽略vant使用步骤,项目中使用全局引用。由于查询很多文章有的过于复杂,有的功能未实现,所以简单整理如有问题欢迎留言改正。 底部导航栏简单实现,需要注意的是,组件是需要在所有需要使

    2024年02月05日
    浏览(35)
  • vant 组件,时间选择器的应用 van-datetime-picker

    如图, 点击箭头弹出时间选择器, 选完时间后显示在页面       最后visitTime传参是字符串    \\\"2023-01-17 17:43\\\"

    2024年02月03日
    浏览(31)
  • 【Flutter】Flutter 使用 pull_to_refresh 实现下拉刷新和上拉加载

    【Flutter】Flutter 使用 pull_to_refresh 实现下拉刷新和上拉加载 你好!在移动开发中,下拉刷新和上拉加载是非常常见的功能。 今天,我将为你介绍一个非常实用的 Flutter 包—— pull_to_refresh 。在这篇文章中,我们将学习如何使用这个包,以及如何在实际业务中应用它。 文章的重

    2024年02月07日
    浏览(30)
  • 解决BUG:微信小程序vant引入报错[“usingComponents“][“van-search“]: “@vant/weapp/search/index“ 未找到

    报错内容: [ miniprogram/pages/index/index.json 文件内容错误] miniprogram/pages/index/index.json: [\\\"usingComponents\\\"][\\\"van-search\\\"]: \\\"@vant/weapp/search/index\\\" 未找到 (env: Windows,mp,1.06.2301040; lib: 2.14.1) 按照vant说明文档配了很多遍,微信小程序也更新到最新版本,project.package.json如下配置 依旧报错。网上各

    2024年02月11日
    浏览(45)
  • vant组件van-swipe-cell中的滑动删除功能(数据的删除功能)

    我们通过查看vant4官网发现上面并没有写如何删除,只有删除的按钮 我写的是这样的: wxml: 我这里数据是存在batchStore.informList中 重要的是: 要绑定一个id,是要删除的那条数据的唯一标识 js: 我这里数据是存在batchStore.informList中 先获取要删除那条数据的id

    2024年02月09日
    浏览(41)
  • 微信小程序引入vant与解决[ app.json 文件内容错误] [“van-button“]: “@vant/weapp/button/index“ 未找到

    下面模拟小白引入vant所遇到的问题与[ app.json 文件内容错误] [\\\"van-button\\\"]: \\\"@vant/weapp/button/index\\\" 未找到 1,利用npm引入vant组件,在目录下初始化组件库 命令:npm init 按ENTER键直到最后回yes好了 2,npm i vant-weapp -S --production 3,回到小程序构建npm 4,此时可能会出现这样的一个问题

    2024年02月11日
    浏览(43)
  • 小程序如何修改缓存中的某一个字段的值;小程序中如何应用vant组件 如:van-dropdown-item、van-field

    将数据放入指定缓存中。 这里缓存块的名称叫‘mydata’,你可以根据自己的需求,取合适的名字。代码如下 效果:这里是存了个对象当示例。也可以存数组,字符串等。 使用 wx.getStorageSync(‘myData’),即可取出‘myData’中缓存的数据。以下代码打印结果为 hello 先取出数据,

    2024年02月09日
    浏览(49)
  • 微信小程序开发——使用Vant组件库van-dropdown-menu实现下拉列表切换页面内容

    请先根据官网要求安装好vant组件库并引入相关组件 1、思路 在页面中使用hidden属性判断是否选中当前信息,再隐藏其他所有内容,仅显示所选内容。 2、代码 wxml部分 js部分 3、实际效果(view模块中的内容可以根据实际开发调整)

    2024年02月14日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包