polymer - Polymer 2.0 中的去抖动器

标签 polymer polymer-2.x

简单的问题,但没有找到有关该主题的文档:Polymer 2.0 中是否有去抖动器?如果可以,如何使用?this.debounce是 1.0 中的一个实例方法,但它似乎已经消失了。

提前致谢!

最佳答案

传统 1.x 去抖器

您可以使用 1.x this.debounce() 方法通过 Polymer.LegacyElementMixin :

class XFoo extends Polymer.LegacyElementMixin(Polymer.Element) {
  ...
  _onClick() {
    this.debounce('myDebouncer', callback, 2000);
  }
}

codepen

新的 2.x 去抖器

2.0 等效项是 Polymer.Debouncer.debounce(debouncer, asyncModule, cb) , 在哪里:
  • debouncerPolymer.Debouncer 的实例从 Polymer.Debouncer.debounce() 返回,用于唯一标识 debouncer 作业。这相当于 1.x 的 debouncer 作业名称字符串。这最初可以是 undefined/null创建一个新实例。
  • asyncModule
    以下之一:
  • Polymer.Async.timeOut.after(TIMEOUT_MS)
  • Polymer.Async.idlePeriod
  • Polymer.Async.microTask
  • Polymer.Async.animationFrame
  • cbasyncModule 时调用的回调完成

  • 此函数返回 Polymer.Debouncer 实例,它有一个 cancel()方法,相当于 1.x this.cancelDebouncer(JOB_NAME) .该实例应该传递给 debounce()下一次调用 debounce 的方法才能正常工作。

    用法示例:
    class XFoo extends Polymer.Element {
      ...
      _onClick() {
        this._debouncer = Polymer.Debouncer.debounce(
           this._debouncer, // initially undefined
           Polymer.Async.timeOut.after(2000),
           callback);
      }
    }
    

    codepen

    关于polymer - Polymer 2.0 中的去抖动器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42773171/

    相关文章:

    html - Polymer:将样式应用于 Shadow DOM 下的元素

    javascript - 如何在只读 Polymer 1.x 属性中设置子属性

    javascript - polymer 2.x : Behavior mixins using class extension; error: Class constructor cannot be invoked without 'new'

    javascript - 如何将自定义 polymer 元素包含在另一个元素中

    javascript - 事件触发时本地 DOM 元素上的 Polymer 2 TypeError

    javascript - 在 Polymer 2.x 中设置原生输入的样式?

    javascript - 使用 mixin 显示灰色背景

    data-binding - 使用 polymer 1.0 在两个 polymer 元素之间进行数据绑定(bind)

    javascript - 在 polymer dom-repeat 中显示 Firebase 数组结果

    javascript - 聚合物 2 元素中的铁形式 2.0 : function not defined