混合行为
Polymer.IronResizableBehavior
是一个 混合行为(即,定义为对象而不是类混入)。在 2.0-preview
分支的 <iron-resizable-behavior>
中。Polymer 2 提供了Polymer.mixinBehaviors()
来将一个或多个混合行为与类合并。
用法:
class NEW_CLASSNAME extends Polymer.mixinBehaviors(HYBRID_MIXINS_ARRAY, SUPERCLASSNAME) { ... }
例子:
class MyView1 extends Polymer.mixinBehaviors([Polymer.IronResizableBehavior], Polymer.Element) {
static get is() { return 'my-view1'; }
connectedCallback() {
super.connectedCallback();
this.addEventListener('iron-resize', this._logResizeEvent);
}
disconnectedCallback() {
super.disconnectedCallback();
this.removeEventListener('iron-resize', this._logResizeEvent);
}
_logResizeEvent(e) {
console.debug('resize', e);
}
}
window.customElements.define(MyView1.is, MyView1);
行为-类混合
你可以像这样创建一个行为-类混合:
const MyMixin = (superclass) => class extends superclass {
foo() {
console.log('foo from MyMixin');
}
};
然后,你可以在你的Polymer元素中像这样使用它:
class MyView1 extends MyMixin(Polmer.Element) {
onClick() {
this.foo();
}
}
混合行为和行为类Mixin
您可以像这样同时使用混合行为和行为类Mixin:
class MyView1 extends Polymer.mixinBehaviors([Polymer.IronResizableBehavior], MyMixin(Polmer.Element)) {
onClick() {
this.foo();
console.log(this._interestedResizables);
}
}
Polymer.mixinBehaviors
直到Polymer.IronResizableBehavior
被重写为类行为。 - alesc