Common Js,AMD,CMD,ES 6 Modules理解
1.commnoJs:
同期ローディングモジュールは、主要実践者のnodejsで、サービスエンドモジュールファイルがローカルディスクに保存されているため、読み込みが速いので、nodejsによく使われています.ネットワークに制限されている理由は、ブラウザ側での使用には適用されません.ブラウザ側は、モジュールファイルを非同期的にロードしている場合が多いです.
2.CMD:
近くに依存して、実行を遅らせることを推賞して、主な実践者seajs;
3.AMD:
前に依存し、事前に実行し、主な実践者requirejsを推奨します.
4.ES 6 Modules:
ブラウザとサーバーの共通のモジュールソリューションを目指し、主にimportとexportの2つのコマンドを使用します.
ES 6 ModulesとCommunJsの違い:
1.comnoJSは値のコピーを出力しますが、ES 6モジュールは値の参照を出力します.
2.ES 6モジュールはコンパイルする時、jsエンジンはシナリオを静的に分析します.importコマンドに出会うと、リードオンリー参照が生成されます.コードを実行する時、この参照を通してモジュールの中に値を取ります.元の値がimportローディングの値に変わります.
3.CommunJsは実行時にロードされ、CommunJsモジュールは対象となります.すなわち、requireモジュールの時にオブジェクトを生成し、その対象に値を取ります.
4.ES 6モジュールをコンパイルする時にロードします.ES 6モジュールはオブジェクトではなく、exportを通じて出力の指定コードを表示します.
同期ローディングモジュールは、主要実践者のnodejsで、サービスエンドモジュールファイルがローカルディスクに保存されているため、読み込みが速いので、nodejsによく使われています.ネットワークに制限されている理由は、ブラウザ側での使用には適用されません.ブラウザ側は、モジュールファイルを非同期的にロードしている場合が多いです.
//calculate.js
function add(a){
return a++;
}
module.exports={
add:add
}
//index.js
var obj = require('./calculate.js');
obj.add(1);
注意:requireは初めてモジュールをロードした後、メモリにオブジェクトを作成します.2.CMD:
近くに依存して、実行を遅らせることを推賞して、主な実践者seajs;
define(function(require,exports,module){
var a = require('./a.js');
a.doSomething();
var b = require('./b.js');
b.doSomething();
});
3.AMD:
前に依存し、事前に実行し、主な実践者requirejsを推奨します.
// A a b
define(['./a.js','./b.ja'],function(a,b){
a.doSomething();
b.doSomething();
});
4.ES 6 Modules:
ブラウザとサーバーの共通のモジュールソリューションを目指し、主にimportとexportの2つのコマンドを使用します.
import a from './a.js';
import b from './b.js';
a.doSomething();
b.doSomething();
function c(){
......
}
export default c;
注意:ES 6 Modulesは対象ではないので、importコマンドは静的に解析され、コンパイル時にコードを導入します.コード実行時にロードするのではなく、条件のロードができません.ES 6 ModulesとCommunJsの違い:
1.comnoJSは値のコピーを出力しますが、ES 6モジュールは値の参照を出力します.
2.ES 6モジュールはコンパイルする時、jsエンジンはシナリオを静的に分析します.importコマンドに出会うと、リードオンリー参照が生成されます.コードを実行する時、この参照を通してモジュールの中に値を取ります.元の値がimportローディングの値に変わります.
3.CommunJsは実行時にロードされ、CommunJsモジュールは対象となります.すなわち、requireモジュールの時にオブジェクトを生成し、その対象に値を取ります.
4.ES 6モジュールをコンパイルする時にロードします.ES 6モジュールはオブジェクトではなく、exportを通じて出力の指定コードを表示します.