ホームページ  >  記事  >  ウェブフロントエンド  >  seajsにおけるモジュール依存関係の解析読み込み処理例

seajsにおけるモジュール依存関係の解析読み込み処理例

小云云
小云云オリジナル
2018-01-26 10:47:391282ブラウズ

この記事では、主に seajs のモジュールの依存関係のロード処理を紹介し、seajs のモジュールの依存関係とロードの原理、関連する注意事項、使用方法をサンプルの形式で分析します。必要な友人が参考になれば幸いです。

最近、プロジェクトに取り組んでいるときに、モジュールの依存関係に関するいくつかの問題を発見しました。これをここに記録します:

たとえば、現在 3 つのファイルがあります:

/*init.js*/
define(function(require, exports, module){
 require('jquery');
 require('jquery.plugA');
})
/*jquery.plugA.js*/
define(function(require, exports, module){
 require('jquery');
 require('jquery.plugB');
 //code...
})
/*jquery.plugB.js*/
define(functioin(require, exports, module){
 require('jquery');
 //code...
})

たとえば、init.js、init.js、 jquery.plugA.js、jquery.plugB.js はすべて jquery に依存します。この場合、seajs はどのように jquery を処理しますか? 1 回だけ実行されますか?複数回実行しますか?それとも他の方法でしょうか?

ここでYuboの答えを参照してください:

モジュール呼び出しについての私の理解は、呼び出しとは特定のモジュールのインターフェースを取得することを指すということです。 SeaJS では、seajs.use、require.async、require のみがモジュール呼び出しを生成します。例: var a = require('./a') require('./a') を実行すると、モジュールのインターフェイスが取得されます。初めて呼び出された場合はモジュール a が初期化され、後で呼び出された場合はモジュール a のインターフェイスが直接返されます。define は、たとえばパッケージ化した後にモジュール情報を登録するだけです。 ) モジュールを seajs に登録します。 .cache では、次のように定義されます。 seajs.cache[id] = { id: id, dependency: deps, Factory: Factory }

は純粋な登録情報です。

require('./a') が必要な場合のみ、seajs.cache['a'].factory が実行されます。実行後、seajs.cache['a'].exports が取得されます

関連する推奨事項:

seajs モジュールの解析ルールの詳細説明とモジュールの使用方法の概要_Seajs

以上がseajsにおけるモジュール依存関係の解析読み込み処理例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。