Skip to content

lazyChange

lazyChange方法为对象创建一个惰性变化的代理。

描述

lazyChange创建的代理在一次赋值后,如果继续在设定时间内持续赋值,那么不立即进行第二次及以后的赋值,而是将本次的变化存储下来。 等待设定时间内不再有新的赋值操作后,再通过一次赋值将这期间的变化赋值过去。此方法可以防止值监听器被频繁触发。

尝试一下

语法

javascript
lazyChange(target)

参数

target

  需要创建代理的目标对象。

返回值

Proxy<object>

返回一个惰性识别变化的代理。

示例

vue
<script setup>
// 如果loading频繁切换状态,页面的loading会保持加载而不是闪烁。
const loading = lazyChange(ref(), 100)
</script>
<template>
  <q-inner-loading :showing="loading"></q-inner-loading>
</template>

兼容性

由于使用Proxy对象,不支持IE浏览器,详细浏览器兼容性参考MDN Proxy 浏览器兼容性

依赖定时器API

纵然setTimeout与setInterval在浏览器和node环境下都被支持。 但定时器并不是ES本身的规范,它是依赖运行环境的。 如果你在web与node之外的JS环境(比如Adobe或者Office)运行这个方法,那么它很可能是无法工作的。