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

lco*_*rre 7 model-view-controller backbone.js marionette

我一直在读木偶文件,我似乎无法弄清楚何时使用marionette.behavior.

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

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

Evg*_*niy 4

它不太一样。

行为就像混合。它应该有一个非常明确的职责,例如:工具提示、警报等。

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

正如您所理解的,它更难阅读、维护,并且您可能会降低性能。行为可以让您一次实现几个逻辑:

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"
    }
  }
});
Run Code Online (Sandbox Code Playgroud)

这段代码更加清晰易读。

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