小程序中的behavior类似于vue中的mixin混入,目的都是为了提高组件间的复用性。小程序框架大体的框架如下:
从图中可以看出在组件设计时,对于复用的部分都依赖于behavior文件,这样做的好处一是可以简化代码量,在数据发生变动时只需要修改behavior就可以实现所有组件的更改;二是可以实现多继承(通常类的父子继承只能是单继承),一个组件可以继承多个不同behavior实例。
behavior虽然能可以实现多继承,但是多继承存在一个问题:多个父类属性冲突,子类应该以谁的属性为基准?
解决方案:
-
父子类共有属性,以子类的属性为准;
-
多个父类共有属性,以behavior数组中最后一个父类的属性为准;
-
特殊情况:父子类有同样的生命周期钩子,钩子不会被覆盖,而是先执行父类的钩子,再执行子类的钩子。