いくつかのイベントを待っている間にモジュールからの依存関係を解決する方法はありますか?DOMロードを待つモジュールからのWebpack依存関係
たとえば、データ属性からアプリケーションユーザーIDを取得し、User(User.jsから)オブジェクトを作成し、アプリケーションに広く使用されるようにウィンドウに格納するモジュールglobals.jsがあります。
globals.js:
define('globals', ['User'], function (User) {
document.addEventListener('DOMContentLoaded', function() {
var id = document.body.getAttribute('data-user-id')
window.appUser = new User(id);
});
});
user.jsの(私はそれが依存関係を持っているのでglobals.jsのコードは、Web詰めにしたいことを示すために):
define('User', function() {
return class User {
constructor(id) {
this.id = parseInt(id);
}
}
});
そしてapp.js globals.jsが必要です。
require(['globals'], function() {
//window.appUser will throw ReferenceError: appUser is not defined
//Add DOMContentLoaded listener here again? :(
});
globals.jsに依存する各モジュールでDOMContentLoadedイベントリスナーを宣言しないようにしてください。 これをどのように管理できますか?
ありがとうございます。私は約束を使用することができますが、それはよりグローバルなグローバルを使用します。私の想像では、globals.jsから約束されたオブジェクトを何らかの形で返すことができれば、モジュールシステムによって完全に処理され、require(['globals'、callback) 'という約束をした後のコールバック関数呼び出し解決されました。実際には、私はいくつかのwebpackローダーを探していると思う...また、実際のコードは、文書の状態のチェックが含まれています、例が単純化され、ありがとう:) –
実際には、質問はこのように扱うことができます:このデータがDOMから取得された場合、モジュール間でいくつかのデータを共有する最もクリーンで効果的な方法です。 –