Fire Up Ember.js screencast はpartial
、template
、render
を使用してテンプレート内でテンプレートをレンダリングしますが、それでもわかりませんどちらを使用するか。
同じスクリーンキャストでは、partial
はコンテキストと現在のコントローラーに関連するすべてのデータを使用するものとして説明されていますが、render
は指定されたコントローラーの一致するテンプレート、コンテキストなどを使用しています。
誰かがpartial
、template
、render
の違いと、いつ(例)を使用するかを明確にできますか?
私がそれを理解する方法、それらが分解する方法は次のとおりです:
「レンダー」は、独自のビュー/コントローラー/テンプレートコンテキスト全体を提供します。
例は、動的な部分を含むトップナビゲーションです。コンテンツはTopNavController内で維持され、「render」を使用してアプリケーションテンプレートに挿入されます
"partial"はテンプレートを挿入しますが、そのテンプレートは独自の代わりに現在のコンテキストを使用します。部分的は、フレームワークの新しい部分でもあり、テンプレートをある程度使用して置き換えることを目的としています。
たとえば、ユーザーのリストを表示し、各ユーザーをリスト内の比較的複雑な部分(アバター、名前、電子メールなど)にすると、リストをループして、各ユーザーのコンテキストに基づいてパーシャルを挿入できます。
「テンプレート」は、現在のコンテキストを使用してテンプレートを挿入するだけです。テンプレートを使用してテンプレート内の部分をレンダリングするのは良いスタイルではないと思いますが、テンプレートはほとんどの場合同じように機能しますが、「部分」を使用する必要があります。
この グラフ は、エンバーのWebサイトで提供されており、レンダリング、パーシャル、ビューを適切に比較しています。
以下は、ウェブサイトで提供されている比較のスニペット画像です。
クライアント側のメモリ使用量の観点から、どちらが良いか、レンダリングまたは部分的。少数のオブジェクトが少ないほど部分的であると仮定する