ホームページ > 記事 > ウェブフロントエンド > seajsにおけるモジュール依存関係の解析読み込み処理例
この記事では、主に 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 サイトの他の関連記事を参照してください。