RequireJS-プラグイン
RequireJSには、さまざまなタイプのリソースを依存関係としてロードできるプラグインの小さなセットが含まれています。以下は、RequireJSで利用可能なプラグインのリストです-
- text
- domReady
- i18n
- CSSの読み込み
テキスト
テキストプラグインは、主にJavaScriptファイル内のHTMLコンテンツを挿入するために使用される非同期ロードのテキストベースのリソースのために使用されています。テキストを使用するとロードできます!requireまたはdefineモジュール呼び出しのプレフィックスを付け、ファイル拡張子をプラグインに渡します。通常のモジュールロードと比較して、テキストプラグインはXHRを使用してモジュールをロードし、ヘッダーにコードを追加しません。script 鬼ごっこ。
テキストファイルリソースは、依存関係としてコードに-として含めることができます。
require(["mymodule", "text!mymodule.html", "text!mymodule.css"],
function(mymodule, html, css) {
//the html and css variables will be the text
//of the mymodule.html file and mymodule.css files respectively
}
);
domReady
RequireJSは、スクリプトが完全にロードされた場合にのみ、DOMの準備が整う前にスクリプトをロードするために使用でき、開発者はDOMと対話できます。DOMの準備が整う前にスクリプトをロードできる場合があります。したがって、この問題を克服するために、RequireJSは、DOMの準備ができたらdomReady関数を呼び出すDOMContentLoadedイベントと呼ばれる最新のアプローチを提供します。
require(['domReady'], function(domReady) {
domReady(function() {
//the domReady function is called when DOM is ready
//which is safe to manipulate DOM nodes in this function
});
});
i18n
を提供する複数のロケールで使用できます i18nモジュールまたは依存関係で「i18n!」が指定されたときに自動的にロードされるバンドルサポート。プレフィックス。これを利用するには、ダウンロードして、メインのJavaScriptファイルが存在するのと同じディレクトリに配置します。このプラグインを「nls」というディレクトリに配置して、ローカリゼーションファイルを見つけます。
例えば、我々は1つのjsファイルと呼ばれていることを前提とcountry.jsなどのディレクトリに以下の内容と場所、それを持つmydirectoryなど/ NLS / country.jsを-
define({
"root": {
"india": "india",
"australia": "australia",
"england": "england"
}
});
fr-frロケールを使用してファイルに特定の翻訳を追加すると、上記のコードは次のように変更されます。
define({
"root": {
"title": "title",
"header": "header",
"description": "description"
},
"es-es": true
});
次に、mydirectory / nls / es-es /country.jsにあるファイルを次の内容で指定します-
define({
"root": {
"title": "título",
"header": "cabecera",
"description": "descripción"
},
"es-es": true
});
以下に示すように、main.jsファイルのモジュール構成を使用してプラグインにロケールを渡すことでロケールを設定できます-
requirejs.config({
config: {
//set the config for the i18n plugin
i18n: {
locale: 'es-es'
}
}
});
RequireJSを使用したCSSの読み込み
一部のプラグインを使用して、ヘッダーリンクに追加するだけでCSSファイルをロードできます。
CSSは、以下に示すように独自の関数を使用してロードできます。
function myCss(url) {
var mylink = document.createElement("mylink");
mylink.type = "text/css";
mylink.rel = "stylesheet";
mylink.href = url;
document.getElementsByTagName("head")[0].appendChild(mylink);
}