解决vue3+vant开发中loading效果的问题

解决vue3+vant开发中loading效果的问题

如果在updataSureClick方法中直接使用loadingTwo的话,会一直出现loading的效果,因为const定义的loadingTwo是有一个常量,在setup加载的过程中,会按照单线程以此加载,会直接就加载到loadingTwo,所以updataSureClick调用的loadingTwo就不起作用,但是如果把loading效果加在一个函数里,函数的执行是在被调用之后才执行的,所以这个时候才会执行loadingOne的方法。

  
    // loading效果    
    function loadingOne() {
      Toast.loading({
        duration: 0, // 持续展示 toast
        forbidClick: true,
        message: "加载中...",
      });
    }
    const loadingTwo: any = Toast.loading({
      duration: 0, // 持续展示 toast
      forbidClick: true,
      message: "加载中...",
    });
    //在updataSureClick方法中调用loading效果,
  const updataSureClick = async (b: any) => {
      button_click.updata_click = b;
      button_click.updata_sure_click = b;
      try {
        let param: any;

        const info = await Sync(param);

        loading();
        tagesdata();
        console.log("bbbbbinfo: ", info);
      } catch (e) {
        console.log(e);
      } finally {
      //运用finally是不管接口调用的成功与否,loading效果都被清除
        Toast.clear();
      }
    };
    
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以通过使用Vant组件库和Vue 3来实现上拉分页和下拉刷新功能。下面是一个简单的示例代码: 首先,您需要安装Vant组件库。可以通过npm或yarn来安装。 ```bash npm install vant ``` 在Vue文件,您需要引入Vant组件并注册使用它们。在需要使用上拉分页和下拉刷新的页面,您可以使用Vant的`PullRefresh`和`List`组件实现。 ```vue <template> <div> <van-pull-refresh v-model="refreshing" @refresh="onRefresh"> <van-list v-model="loading" :finished="finished" @load="onLoad"> <!-- 这里是列表内容 --> <van-list-item v-for="item in list" :key="item.id">{{ item.text }}</van-list-item> </van-list> </van-pull-refresh> </div> </template> <script> import { ref, reactive } from 'vue'; export default { setup() { // 列表数据 const list = reactive([]); // 是否正在刷新 const refreshing = ref(false); // 是否正在加载更多数据 const loading = ref(false); // 是否已加载完所有数据 const finished = ref(false); // 模拟异步获取数据 const fetchData = () => { return new Promise((resolve) => { setTimeout(() => { resolve([ { id: 1, text: 'item 1' }, { id: 2, text: 'item 2' }, { id: 3, text: 'item 3' }, ]); }, 1000); }); }; // 下拉刷新事件 const onRefresh = () => { refreshing.value = true; // 模拟异步获取最新数据 fetchData().then((data) => { list.splice(0, list.length, ...data); refreshing.value = false; finished.value = false; }); }; // 上拉加载更多事件 const onLoad = () => { loading.value = true; // 模拟异步加载更多数据 fetchData().then((data) => { if (data.length > 0) { list.push(...data); } else { finished.value = true; } loading.value = false; }); }; return { list, refreshing, loading, finished, onRefresh, onLoad, }; }, }; </script> ``` 在上述代码,我们通过`van-pull-refresh`组件实现下拉刷新功能,并通过`van-list`组件实现分页加载功能。当页面触发下拉刷新事件时,我们可以通过异步获取最新数据并更新列表。当页面触发上拉加载更多事件时,我们可以通过异步加载更多数据并追加到列表末尾。 这样,您就可以使用VantVue 3来实现上拉分页和下拉刷新功能了。希望对您有帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值