behavior

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值