小程序的 behaviors
方法是一种代码复用的方式,可以将一些通用的逻辑和方法提取出来,然后在多个组件中复用,从而减少代码冗余,提高代码的可维护性。
如果需要 behavior
复用代码,需要使用 Behavior()
方法,每个 behavior
可以包含一组属性、数据、生命周期函数和方法
组件引用它时,它的属性、数据和方法会被合并到组件中,生命周期函数也会在对应时机被调用。
1、注册 behavior
如果需要注册一个 behavior
,需要借助 Behavior()
方法,接受一个 Object
类型的参数
// my-behavior.js
module.exports = Behavior({behaviors: [],properties: {myBehaviorProperty: {type: String}},data: {myBehaviorData: 'my-behavior-data'},created: function () {console.log('[my-behavior] created')},attached: function () {console.log('[my-behavior] attached')},ready: function () {console.log('[my-behavior] ready')},methods: {myBehaviorMethod: function () {console.log('[my-behavior] log by myBehaviorMehtod')},}
})
2、使用 behavior
// my-component.js
const myBehavior = require('my-behavior')Component({behaviors: [myBehavior]// coding...
})
3、同名字段
组件和它引用的 behavior 中可以包含同名的字段,对这些字段的处理方法如下:
- 如果有同名的
属性或方法
,采用 “就近原则”,组件会覆盖 behavior 中的同名属性或方法 - 如果有同名的数据字段且都是
对象类型
,会进行对象合并,其余情况会 采用 “就近原则” 进行数据覆盖 生命周期函数
和 observers 不会相互覆盖,会是在对应触发时机被逐个调用,也就是都会被执行