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)运行这个方法,那么它很可能是无法工作的。