RequireJsについて

1852 ワード

1:モジュール化を使用する理由
  • ネーミング競合の解決
  • 依存管理
  • コード可読性向上
  • コードデカップリング、多重性向上
  • 2:CMD、AMD、CommonJS仕様はそれぞれ何を指しますか?どのようなアプリケーションがありますか?
    この3つの仕様はjavascriptモジュール化に基づいており、コードをよりよく管理し、維持することができ、どのモジュールが必要なのか、どのモジュールをロードし、チームの協力を容易にすることができます.
  • CMD
  • CMD(Common Module Definition)は、SeaJsが推奨する仕様です.彼はamdとは異なり,両者とも非同期ロードモジュールであるが,cmdはどのモジュールをロードする必要があるか,すなわち緩やかなロードである.CMD仕様では、モジュールはファイルです.
  • 構文
  •   //   module.js
      define(function(requie, exports, module){
        //     
        var $ = require('jquery.js')
        $('div').addClass('active');
    
      //     
      seajs.use(['myModule.js'], function(my){
        
      });
    })
    
  • AMD
  • AMD、すなわちAsynchronous Module Definitionは、「非同期モジュール定義」である.ブラウザ側でモジュール化された開発の仕様であり、RequireJsが推奨する仕様でもあります.彼はCMDとは異なり、フロントモジュールに依存し、事前にロードされ、つまりすべてのrequireが事前に実行される.
  • 構文
  • import markdown
    // a.js   
      define(['jquery'],function($){
          var a =1;
          return {
              add1:function(){
                   return  ++a
                },
              goShow:function(){
                  return $('div').show()
              }
          }
    })
    // main.js 
      require(['a'],function(a){
          console.log(a.add1()) // 2
    })
    
  • COMMONJS
  • CommonJSはサーバ側モジュールの仕様、Node.jsはこの規範を採用した.Node.JSはまずjsモジュール化の概念を採用した.
  • CommonJS仕様によると、個別のファイルはモジュールです.各モジュールは、globalオブジェクトのプロパティとして定義されていない限り、個別の役割ドメインです.すなわち、モジュール内で定義された変数は、globalオブジェクトのプロパティとして定義されていない限り、他のモジュールに読み込めません.実はcmd仕様とはあまり差がなく、オンデマンドでロードされていますが、CommonJSはブラウザ側に適用できません.
  • 構文
  • // a.js
    var people = {
      name:'huo',
      sayName:function(){
        console.log(this.name);
      }
    }
    module.exports = people; //     
    // b.js
    var p = require('./a');
    console.log(p);
    p.sayName()
    

    実戦
    エンタープライズステーション