Backdraft组件子类化添加watchables及继承场景的技术疑问
关于组件继承与Watchables的两个问题
问题一:子类化时动态添加Watchables是否可行?
class Beer extends Component { [...component code goes here] } class AnchorSteam extends Beer.withWatchables('foamy') { [...component code goes here] }
这种写法可行,完全可以在子类化的组件上添加watchables。Beer.withWatchables('foamy')会返回一个集成了foamy watchable支持的Beer子类,AnchorSteam继承这个动态生成的类后,就会拥有该watchable的相关能力。只要withWatchables方法的实现逻辑正确(比如为类添加watchable的监听、更新机制等),这种用法就可以正常工作。
问题二:子类能否继承父类的Watchables?
class Beer extends Component.withWatchables('foamy') { [...component code goes here] } class AnchorSteam extends Beer { [...component code goes here] }
AnchorSteam会响应foamy watchable。因为Beer本身就继承自已经添加了foamy watchable的Component子类,AnchorSteam作为Beer的子类,会完整继承父类的所有特性,包括foamy watchable的处理逻辑。如果AnchorSteam中定义了bdReflect: foamy,当foamy的值发生变化时,对应的响应逻辑(比如视图更新、关联回调)会正常触发,和直接在Beer类中使用该watchable的效果一致。
内容的提问来源于stack exchange,提问作者Peter Hollingsworth
相关产品推荐
相关产品推荐

