美文网首页
lodash 防抖函数

lodash 防抖函数

作者: 不忘初心_6b23 | 来源:发表于2021-03-23 11:05 被阅读0次

    有这样一个需求,点击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>
    
    

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

    相关文章

      网友评论

          本文标题:lodash 防抖函数

          本文链接:https://www.haomeiwen.com/subject/weaxhltx.html