behavior
// my-behavior.js
module.exports = Behavior({
behaviors: [],
properties: {
myBehaviorProperty: {
type: String
}
},
data: {
myBehaviorData: {}
},
attached: function(){},
methods: {
myBehaviorMethod: function(){}
}
})
properties:组件的对外属性,是属性名到属性设置的映射表
data:组件的内部数据,和properties一同用于组件的模板渲染
observers:组件数据字段监听器,用于监听properties和data的变化
methods:组件的方法,包括事件响应函数和任意的自定义方法,关于事
件响应函数的使用
behaviors:类似于mixins和traits的组件间代码复用机制
behaviors
// my-component.js
var myBehavior = require('my-behavior')
Component({
behaviors: [myBehavior],
properties: {
myProperty: {
type: String
}
},
data: {
myData: 'my-component-data'
},
created: function () {
console.log('[my-component] created')
},
attached: function () {
console.log('[my-component] attached')
},
ready: function () {
console.log('[my-component] ready')
},
methods: {
myMethod: function () {
console.log('[my-component] log by myMethod')
},
}
})
在上例中, my-component 组件定义中加入了 my-behavior,
而 my-behavior 结构为:
属性:myBehaviorProperty
数据字段:myBehaviorData
方法:myBehaviorMethod
生命周期函数:attached、created、ready
这将使 my-component 最终结构为:
属性:myBehaviorProperty、myProperty
数据字段:myBehaviorData、myData
方法:myBehaviorMethod、myMethod
生命周期函数:attached、created、ready
当组件触发生命周期时,上例生命周期函数执行顺序为:
先有behavior,再有component
[my-behavior] created
[my-component] created
[my-behavior] attached
[my-component] attached
[my-behavior] ready
[my-component] ready