我什么时候或为什么要使用marionette.behavior?

时间:2014-06-04 21:00:44

标签: backbone.js model-view-controller marionette

我一直在阅读the marionette docs,而我似乎无法弄明白何时使用marionette.behavior

因为,根据我的理解,这与扩展已经具有相同结果操作的另一个视图相同。

那么我错过了什么可以解释使用marionette.behavior

1 个答案:

答案 0 :(得分:4)

它不完全相同。

行为就像混合一样。它应该有一个非常具体的责任,例如:工具提示,警报或类似的东西。

当然,您可以通过扩展具有相同功能的视图来实现,但如果您需要实现几个不同的逻辑,例如您需要弹出,警报和标签功能 - 您将必须使用extend构建链。

正如您所理解的那样,它更难阅读,维护并且您可能会失去性能。使用行为可以一次实现少量逻辑:

var MyView = Marionette.ItemView.extend({
  ui: {
    "close": ".close-btn"
  },

  behaviors: {
    CloseWarn: {
      message: "you are closing all your data is now gone!"
    },
    ToolTip: {
      text: "what a nice mouse you have"
    }
  }
});

此代码更清晰,更易读。

因此,使用行为期望它们作为非常指定函数的混合。尽可能小。不要让他们“知道多少”。