私はしばらくの間いくつかのコードを見てきましたが、この状況で適用するベストプラクティスを決めることができません:
n サブビューを持つビューがあるとします。それらを初期化するための2つのプラクティスに出くわしました
1 内部初期化
initialize: function() {
this.subViews = [];
this.subViewModelCollection.each(function(model) {
var view = new SubView({model: model});
this.subViews.push(view);
this.$el.append(view.el);
}, this);
},
render: function() {
_.invoke(this.subViews, 'render');
}
2 内部レンダリング
initialize: function() {
... // render handles the subviews
},
render: function() {
this.subViews = [];
this.subViewModelCollection.each(function(model) {
var view = new SubView({model: model}).render(); // render optional
this.subViews.push(view);
this.$el.append(view.el);
}, this);
}
これらは粗雑なサンプルにすぎませんが、私のジレンマを示しています。サブビューの初期化は関数initialize
または関数で行う必要がありますか? render
個人的には後者のバージョンを強く支持してきましたが、いくつかのコードを見て前者に傾倒しました。
では、サブビューをどこで初期化するのですか?なぜそこでそれを行うのですか?なぜ他のオプションよりも優れているのですか?