私はdojoの宣言的に作成されたウィジェットとプログラムによるものとの違いは?
- 、道場に我々は2つの方法で任意のウィジェットを作成することができます知っているプログラムで
- 宣言
プログラムで私たちは宣言たちのためのに対し、JavaScriptを使用しますウィジェットを作成しますHTMLタグでdojo属性を使用します。
誰かの違いを教えてもらえますか?
どちらがお勧めですか?その理由は何ですか?
私はdojoの宣言的に作成されたウィジェットとプログラムによるものとの違いは?
プログラムで私たちは宣言たちのためのに対し、JavaScriptを使用しますウィジェットを作成しますHTMLタグでdojo属性を使用します。
誰かの違いを教えてもらえますか?
どちらがお勧めですか?その理由は何ですか?
まあ、両方の方法にはいくつかの違いがあります。宣言的な方法では、すべての設定はdojo-data-props
のようなHTML属性に基づいていますが、value、title、...のような他の属性もあります。したがって、作成するDOMノードは実際には何らかのプレースホルダとして機能します。
JavaScriptコードを記述してウィジェットを作成する場合は、添付するDOMノードを指定する必要がありますが、最も大きな違いはそのDOMノードのHTML属性をコピーしないことです。ここのDOMノードは、プレースホルダではなくコンテナとしてのみ機能します。
ほとんどが好ましく、それは通常のアプリケーションと何が開発のクリーンな方法だと思うの要件に依存している解決策はありません。
私は最終的にユーザーインターフェイスの一部であるため、個人的に宣言マークアップが好きです。しかし、あなたは望みどおりに行くことができます。宣言的な方法で店舗やウィジェットのイベントハンドラーを作成する人もいますが、ユーザーインターフェイスの一部ではないため、JavaScriptで記述することを個人的に好みます。
ウィジェットを作成する方法が変更される理由もあります。たとえば、宣言型マークアップの最大の欠点の1つは、ページを解析する必要があることです(たとえば、parseOnLoad
)。これは通常、プログラムでウィジェットを作成するよりも時間がかかります。特定のDOMノードを解析するだけでそれを改善することはできますが、追加のコードを書く必要があります(それでもまだ高速ではありません)。
ちょっとしたメモです。これは宣言的な方法が遅いことを意味しません。それは実行する必要のある余分な操作なので、少し遅くなりますが、エンドユーザーは違いを見ることさえできません。
しかしながら、宣言的な方法の利点は、ページを読み込むときに、エンドユーザーがプレースホルダを見ることができることです。正しいプレースホルダ(たとえば、dijit/form/FilteringSelect
とdijit/form/ComboBox
の場合は<select>
)を選択すると、エンドユーザーは少なくとも何かを表示します。プログラムですべてを作成すると、JavaScriptコードが実行されるまで、エンド・ユーザーは空白のページを表示します。
したがって、パフォーマンスが要件の1つである場合は、プログラムによる作成を選択できます。プレゼンテーションレイヤーがビジネスロジックから分離されているコードを分離したい場合は、宣言的な方法を使用することをお勧めします。
しかし、結局両方の解決策は良好です。