5

Backbone.Marionette を使用する最初の試みを行っていますが、単純な Backbone.View で十分な場合に Backbone.Marionette.ItemView を使用する理由があるかどうか疑問に思いましたか?

ありがとう!

4

1 に答える 1

16

Marionette の ItemView は、いくつかのことを行うデフォルトrendercloseメソッドを提供します。

render次のことを行います (とりわけ):

1) ビューを !this.isClosed としてマークします (リージョンでのビューの表示、別のマリオネットの概念に関連)

2) レンダリング イベントの前後のトリガー

3) メソッドを呼び出してserializeDataデータを取得します (デフォルトは、 または のいずれかからのデータthis.modelです) this.collection

4) テンプレートを (おそらく TemplateCache から) 取得し、Marionetter.Renderer を介してレンダリングします。

5) UI 要素をバインドする

この「無料」renderの方法に加えて、近い機能も得られます。

もちろん、CollectionView/ItemView の組み合わせ (非常に強力) または CompositeView/ItemView を使用している場合は、ItemView を使用する必要があります。

これらのケース以外では、1 つの大きな利点は、自分のビューがマリオネット リージョンと互換性があることを知っていることです。理想的には、Marionette アプリでは、次のように別の領域を使用してビューを表示します。

var myView = new MyView();

// render and display the view
MyApp.mainRegion.show(myView);

// closes the current view
MyApp.mainRegion.close();

MyViewMarionette ItemView の場合、これは魅力的に機能します。未加工のバックボーン ビューである場合は、計画どおりに機能することを確認するために何らかの作業を行う必要があります。

私のアプリでは、通常、ItemView をすべての非コレクション ビューと非複合ビューのベースとして使用することを選択します。

于 2013-03-11T20:56:13.647 に答える