私は複雑な Web アプリを構築していますが、物事を単純にするために、さまざまなモジュール (オブジェクト) をさまざまなファイルに作成しました。これらのモジュールは、一部のページでは必須であり、他のページでは必須ではない場合があります。
そのため、どのページでもすべてのモジュールをロードして無駄なリクエストを増やしてしまうことは避けたいと思います。
これまでのところ、私はこのように働いています:
- 必要なすべてのライブラリを含めます
- その後、
jQuery(function() {});
現在のページの特定の #ids または .classes 引数を使用して、これらのライブラリをインスタンス化します。
すべてが正常に機能しますが、私のアプリは簡単に成長していないため、RequireJS で JS を管理したいと考えています。
そして、それが私にとって少し混乱し始めるところです。
を使用して、必要に応じてモジュールをロードできることはわかってrequire(['module1', 'module2', 'etc'], function (module1, module2, etc) {})
いますが、次のように言えます。
「このページでは、これらのモジュールをロードし、それらの #ids と .classes でインスタンス化します」
と
「この他のページでは、この #other-id を使用して、そのモジュールのみをロードします」
?
たとえば、module1 は API からデータをロードし、パラメータとして指定された特定のテーブルにリストします。
// in page 1
var mod1 = new Module1($('#content>table');
mod1.init(); // will load the data from the api with the url located at <table data-api-url="http://....">
// in page 2
var mod1 = new Module1($('#content .items>table'); // The table where we want the data to be populated is not at the same position!
mod1.init();
つまり、ページによっては、モジュールを別の方法でロードする必要があります。それが、RequireJsの使用方法がわからない方法です:/