CODE4FUN
什么是Flight组件

Twitter Flight是基于组件的. 那么什么是组件了? 组件是一块自我包含的原子的功能片段. 一个组件由三个部分组成:

  1. 组件定义
  2. 组件工厂
  3. 组件实例

组件定义

组件由一个命名方法定义. 包括定义事件监听器, 触发器, 默认配置和私有方法. 组件没有public的方法或成员变量. 所有与外界的交互使用事件来完成.

function heartbeat () {
  this.defaultAttrs({
    bpm: 80
  });
  this.beat = function () {
    this.trigger('heartbeat'); // trigger heartbeat event
  };
  this.after('initialize', function () {
    setInterval(this.beat.bind(this), 60000/bpm);
  });
}

组件工厂

Flight的defineComponent方法接受一个组件定义函数并返回一个组件工厂.

HeartBeat = defineComponent(heartbeat);
HeartBeat.attachTo('body');
HeartBeat.attachTo('#child', {
  bpm: 90
});

组件实例

function heartbeatMonitor () {
  this.handleHeartbeat = function () {
    console.log('Still alive.');
  };
  this.after('initialize', function () {
    this.on('heartbeat', this.handleHeartbeat);
  });
}

本文翻译自What is a Flight component?