AMD、CMD、CommonJs和ES6的区别

时间:2018-11-14 15:31:02 类型:JS/JQUERY
字号:    

  一、AMD是RequireJs在推广过程中对模块定义的规范化产出。

  特点是:依赖前置,异步模块定义

  define(['package/lib'],function(lib){

  function foo(){

  lib.log("hello world");

  };

  return {

  foo:foo

  };

  })

  二、CMD是SeaJs在推广过程中对模块定义的规范化产出。

  特点是:淘宝团队提供,依赖就近,同步概念即用即加载模块

  //所有模块通过defined来定义

  define(function(require,export,module){

  //通过require引入依赖

  var $=require('jqurey');

  var spinning=require('./spinning');

  })

  三、 CommonJS就是一个JavaScript模块化的规范,是用在服务器端的node的模块规范,前端的webpack也是对CommonJS原生支持的

  exports.area=function(r){

  return Math.PI*r*r;

  }

  exports.circumference=function(r){

  return 2*Math.PI*r;

  }

  四、ES6特性export/import

  ES6 在语言标准的层面上,实现了模块功能,而且非常简单,ES6到来,完全可以取代 CommonJS 和AMD规范,成为浏览器和服务器通用的模块解决方案。由vue,Angular  React这些mvvm 模式的框架发展,让前端的编程变得模块化,组件化