小程序的 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 不会相互覆盖,会是在对应触发时机被逐个调用,也就是都会被执行