lodash 防抖函数

有这样一个需求,点击switch开关将状态值记录回后台。原始做法,添加事件并将调用后台接口。


image.png

然后连续点击开关看到接口请求情况如下 :


image.png

我们在连续点击的情况之下,会在每一次点击之后就会执行自定义函数的回调,这时如果你的回调中处理一些比较消耗内存的一些操作,或者调用接口之类,那么很有可能造成不必要的浪费以及阻塞,更可能会导致项目崩溃。

当当当,这个时候防抖函数就要上场了。

函数防抖: 频繁触发,但只在特定的时间内没有触发执行条件才执行一次代码

<template>
    <el-switch
        v-model="scope.row.status"
        :active-value="1"
        :inactive-value="0"
        @change="val => changeStatus(val)"
        active-color="#15A29E"
        inactive-color="#D1D4DC"
    >
    </el-switch>
</template>

<script>
    import { updateLabelStatus } from '@/api/dynamicLabel'
    export default {
        methods: {
            //修改状态
            changeStatus: _.debounce(function(item, val) {
                updateLabelStatus(item.id, val).then(res => {
                    this.getTableList()
                }).catch(() => {
                    this.getTableList()
                })
            }, 500),
        }
    }
</script>

酱紫,连续点击多次只执行一次。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容