dojo(六):ステートメント文法とdojo/parser
3911 ワード
1、概要
Dojoを使うには二つの主要な方法があります.それぞれプログラミングと宣言式です.プログラムはJavaScriptを使ってオブジェクトを実例化し、すべてのコードはJavaScriptに符号化されます.宣言式ではドジョジョ/パーを使ってDOMを読み、特殊な属性(後にはdata-dojo-typeと知っています.)で飾られたノードとコントロールの挙動を拡張する特定のラベルを解析します.
この二つの方法は自分の長所と短所があります.この二つの方法を同時に使うことができます.本文は主に声明式の文法を説明し、声明式の文法を使って、次のいくつかの点を考慮する必要があります.宣言式文法は非常に簡単であり、より深いJavaScriptは必要ない.JavaScriptは実現できます.ステートメント文法はほとんど実現できますが、ステートメント文法はその制約があります. 宣言式文法の本質(類似)タグのため、彼の性能はプログラミング式より優れています.DOjo/parserを使用してDOMを解析し、処理が必要なノードを検索する必要があるからです. 2、具体化対象
ステートメント文法で最も一般的な方法は、実装コンポーネントです.実現方法は:特殊な属性(data-dojo-type)をhtmlタグに追加し、dojo/parserを使って文書と実用化コンポーネントを読み取ります.例を見ます
私たちはこのコンポーネントの参照を取得する必要があるときに有用なid属性を追加していることに注意することができます.Dijitの基本的なコンポーネントは、実装時に、彼らを格納するノードを検索し、ID属性があれば、dijit/registryにID値を登録して、将来的にはidによってコンポーネントを参照することができるようにする.
私たちは上にラベルを置いただけです.これからはdojo/parserをアクティブにする必要があります.AMDを導入する前のバージョンでは、Dojo構成data-dojo-configのオプションparse Onload:trueを使ってdojo/parserをアクティブにしてもいいです.このような使い方は、特別な場合には予想外の結果をもたらす可能性がありますので、コードに表示されるdojo/parserの活性化を推奨します.
dojo/parserを使った実用化対象は強力ですが、コンポーネントを設定できないと意味がありません.したがって、実装時に構成情報を入力できる仕組みが必要である.
Dojoの初期バージョンでは、属性が機能しなくてもタグに属性を追加する方法を使用します.HTML 5は、data-先頭の属性をカスタマイズし、文書の厳密な検証を可能にする方法を導入しています.したがって、特別なdata-dojo-props属性を使用して、実装時のコンストラクタの構成を伝える必要があります.たとえば:
dojo/parserは、一般に、ラベル(例えば、Dijitコンポーネント)の可視化要素を実装するために使用され、非可視オブジェクトを実装するためにも使用され得る.dojo/parser解析構成情報は、最初のパラメータとして、nodeノードの参照を第二のパラメータとします.これはドジョウに基づいていますベース/declareの非可視要素も可能です.
問題があるのは、従来のオブジェクトはDijitコンポーネントのように登録されていません(Dijitコンポーネントは、実装時にはキャリア要素のID値に基づいてdijit/registryに登録され、将来的にコンポーネントの参照を得ることができるようになります)ので、実装後にこれらのオブジェクトに参照できるように、グローバル領域で参照を作成する必要があります.dojo/parseはdata-dojo-i属性を検索することによってこの仕事を完成します.
Dojoを使うには二つの主要な方法があります.それぞれプログラミングと宣言式です.プログラムはJavaScriptを使ってオブジェクトを実例化し、すべてのコードはJavaScriptに符号化されます.宣言式ではドジョジョ/パーを使ってDOMを読み、特殊な属性(後にはdata-dojo-typeと知っています.)で飾られたノードとコントロールの挙動を拡張する特定のラベルを解析します.
この二つの方法は自分の長所と短所があります.この二つの方法を同時に使うことができます.本文は主に声明式の文法を説明し、声明式の文法を使って、次のいくつかの点を考慮する必要があります.
ステートメント文法で最も一般的な方法は、実装コンポーネントです.実現方法は:特殊な属性(data-dojo-type)をhtmlタグに追加し、dojo/parserを使って文書と実用化コンポーネントを読み取ります.例を見ます
上記の例では、data-dojo-typeを使用してMID(ここではDojo Button)を指定しましたが、dojo/parserがノードのDOM内の位置にdijit/form/Buttonオブジェクトを実装するように指示します.私たちはこのコンポーネントの参照を取得する必要があるときに有用なid属性を追加していることに注意することができます.Dijitの基本的なコンポーネントは、実装時に、彼らを格納するノードを検索し、ID属性があれば、dijit/registryにID値を登録して、将来的にはidによってコンポーネントを参照することができるようにする.
私たちは上にラベルを置いただけです.これからはdojo/parserをアクティブにする必要があります.AMDを導入する前のバージョンでは、Dojo構成data-dojo-configのオプションparse Onload:trueを使ってdojo/parserをアクティブにしてもいいです.このような使い方は、特別な場合には予想外の結果をもたらす可能性がありますので、コードに表示されるdojo/parserの活性化を推奨します.
require(["dojo/parser", "dojo/ready", "dijit/form/Button"],
function(parser, ready){
ready(function(){
parser.parse();
});
});
3、オブジェクトの配置dojo/parserを使った実用化対象は強力ですが、コンポーネントを設定できないと意味がありません.したがって、実装時に構成情報を入力できる仕組みが必要である.
Dojoの初期バージョンでは、属性が機能しなくてもタグに属性を追加する方法を使用します.HTML 5は、data-先頭の属性をカスタマイズし、文書の厳密な検証を可能にする方法を導入しています.したがって、特別なdata-dojo-props属性を使用して、実装時のコンストラクタの構成を伝える必要があります.たとえば:
4、非コンポーネントオブジェクトの実装dojo/parserは、一般に、ラベル(例えば、Dijitコンポーネント)の可視化要素を実装するために使用され、非可視オブジェクトを実装するためにも使用され得る.dojo/parser解析構成情報は、最初のパラメータとして、nodeノードの参照を第二のパラメータとします.これはドジョウに基づいていますベース/declareの非可視要素も可能です.
問題があるのは、従来のオブジェクトはDijitコンポーネントのように登録されていません(Dijitコンポーネントは、実装時にはキャリア要素のID値に基づいてdijit/registryに登録され、将来的にコンポーネントの参照を得ることができるようになります)ので、実装後にこれらのオブジェクトに参照できるように、グローバル領域で参照を作成する必要があります.dojo/parseはdata-dojo-i属性を検索することによってこの仕事を完成します.