我正在用mobx / react构建两个小部件,所有逻辑都位于商店内部。两者共享大多数设计规则,因此它们的存储是95%相同。
是否有解决此情况的明智方法?
例如,是否可以创建这样的继承?
class Animal {
@observable name = "";
constructor(name) {
this.name = name;
}
@computed get sentence() {
console.log(this.name + ' makes a noise.');
}
}
class Dog extends Animal {
@observable isBarking = false;
@computed get bark() {
if (this.isBarking){
console.log('The dog is barking');
}
}
@action
setIsBarking(isBarking) {
this.isBarking = isBarking;
}
}
最佳答案
您是否考虑过MobX状态树(https://github.com/mobxjs/mobx-state-tree)用于管理两个类Animal
和Dog
?
这将为您提供强大的compose
功能,该功能可用于代替继承。
这对您来说可能是最有用的部分:“通过使用类型组合来模拟继承” https://github.com/mobxjs/mobx-state-tree#simulate-inheritance-by-using-type-composition