基本的に、最初の 2 つは render-within の親、
// parent view's render
render: function() {
var child = new ChildView({el: this.$('.foo'), model: bar, ...});
this.$el.append(child.render().el);
}
これは基本的に、子がレンダリングされる場所またはタイミングを親が指示する場合であり、render-within-itself は、
// parent view's render
render: function() {
var child = new ChildView({el: this.$('.foo'), model: bar, ...});
this.$el.append(child.el);
}
// child view's initialize
initialize: function() {
...
this.render();
}
これは、レンダリングがいつ行われるかを子ビューが指示する場合です。私の意見では、後者の方が優れています。アプリケーションは、いつレンダリングする必要があるかをビュー自体だけが認識できるように配置する必要があります (初期化またはモデル/コレクションのフェッチの直後である必要があります)。後で呼び出されますが、render
内での呼び出しに問題はありません。移植しても、その機能に違いはありません。initialize
delegateEvents
el
render
内部での呼び出しinitialize
は、状況に関係なく機能し、レンダリング方法が統一されるため、優れた方法です (フェッチ後に他のビューと同じ方法でレンダリングするビューを追加します)。私はまだこの方法でレンダリングを行う際に問題に遭遇したことはありません。
これが役立つことを願っています(またはあなたを安心させるのに役立ちます)!