Polymer v2.0:如何编写可重用的mixin代码
可以说我想写一组mixin。 据我所知,每个mixin应该提供一些功能,并且不影响或依赖任何其他mixin(除非直接扩展另一个mixin)。
所以我写这样的东西:
const MixinA = superClass => class extends superClass {
connectedCallback() {
this.addEventListener('click', this.handleClick_);
}
/**
* @return {Array.<string>}
*/
static get observers() {
return [
'handleMyPropChange_(myProp)',
];
}
}
然后我添加这样的东西:
const MixinB = superClass => class extends superClass {
/**
* @return {Array.<string>}
*/
static get observers() {
return [
'handleMyPropChange_(myProp)',
];
}
}
如果我将这两个mixin应用于相同的元素,则handleMyPropChange_
一个将被隐藏,而第二个将被触发两次。
在这个例子中,可以使用和handleClick_
相同的问题。
Polymer v1行为没有这样的问题。
我找到的唯一方法是为每个私人类成员添加一些mixin特定的前缀,以赋予它们独特的名称,但它看起来不是很方便什么是处理此问题的最佳选择?
在Polymer 2中,你正在扩展一门课。 这意味着只有任何给定名称只能有一个函数。 你基本上覆盖了以前定义的最新功能。 该函数发射两次,因为每个mixin正在注册一个观察者,这些都没有重复。
如果功能在逻辑上相同,我会将其抽象出来。 如果它们在逻辑上不同,我会根据函数的作用提供不同的更清晰的名称。
链接地址: http://www.djcxy.com/p/5339.html