element-plus按钮使用v-loading+disabled,关闭loading时页面闪一下问题

element-plus按钮使用v-loading+disabled,关闭loading时页面闪一下问题:
问题代码:

<el-button type="danger" round @click="sendMsg" :disabled="loading" v-loading="loading">
        <el-icon color="var(--white_color)" size="18"><Promotion /></el-icon>
      </el-button>

解决方案:将v-loading与disabled分开用

<div v-loading="loading">
      <el-button type="danger" round @click="sendMsg" :disabled="loading">
        <el-icon color="var(--white_color)" size="18"><Promotion /></el-icon>
      </el-button>
     </div>
要在一个组件中使用element-plus的InfiniteScroll无限滚动,需要先在组件中引入InfiniteScroll,并且在需要无限滚动的元素上绑定v-infinite-scroll指令和相应的事件处理函数。以下是一个示例代码: ```vue <template> <div class="scroll-container" v-infinite-scroll="loadMore" infinite-scroll-disabled="loading"> <ul> <li v-for="(item, index) in list" :key="index">{{ item }}</li> </ul> <div v-if="loading">Loading...</div> </div> </template> <script> import { ref } from 'vue'; import { useInfiniteScroll } from 'element-plus'; export default { setup() { const list = ref(['Item 1', 'Item 2', 'Item 3']); const loading = ref(false); const { load } = useInfiniteScroll(); const loadMore = async () => { if (loading.value) return; loading.value = true; await load(); list.value.push(`Item ${list.value.length + 1}`); loading.value = false; }; return { list, loading, loadMore, }; }, }; </script> ``` 在这个示例中,我们首先在组件中引入了`useInfiniteScroll`函数,然后在模板中,将需要无限滚动的元素绑定了`v-infinite-scroll`指令,并且设置了`infinite-scroll-disabled`属性,用于指示当前是否正在加载数据。在`setup`函数中,我们定义了`list`和`loading`两个响应式变量,以及`loadMore`函数,用于处理滚动事件。在`loadMore`函数中,我们首先根据`loading`变量的值决定是否需要加载数据,然后设置`loading`变量为`true`,调用`load`函数加载数据,将新的数据添加到`list`数组中,并将`loading`变量重置为`false`。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值