模块化

2017-06-19  本文已影响0人  七_五

1、模块化

2、CMD、AMD、CommonJS 规范分别指什么?有哪些应用?

**CommonJS : **
CommonJS主要是针对服务端的一个模块化规范,是NodeJS中的规范标准

demo 一个简单的例子

//模块定义 myModel.js
var name = 'my'

function printName() {
  console.log(name)
}
function printFullName(firstName) {
  console.log(firstName + name)
}
//模块输出
modules.exports = {
  printName : printName,
  printFullName : printFullName
}


//加载模块
var nameModule = require('myModel.js');
nameModule.printName();

AMD:
AMD(Asynchronous Module Definition),即异步模块定义,这是一个在浏览器端模块化开发的规范

由于不是JavaScript原生支持,使用AMD规范进行页面开发需要用到对应的库函数,也就是被广泛运用的RequireJS,实际上AMD 是 RequireJS 在推广过程中对模块定义的规范化的产出

RequireJS 主要解决了两个问题

demo:一个requireJS的例子

定义模块myModule.js
define(['myModule'],function() {
  var name =  'my'
  function printName(){
        console.log(name);
    }

  return {
    printName: printName
  };
})

//加载模块
require(['myModule'],function(my) {
  my.printName()
})

语法分析
requireJS定义了一个函数 define,它是全局变量,用来定义模块
define(id?, dependencies?, factory)

加载模块
require([dependencies], function(){});

CMD
CMD 即Common Module Definition通用模块定义,CMD规范是国内发展出来的,就像AMD有个requireJS,CMD有个浏览器的实现SeaJS,SeaJS要解决的问题和requireJS一样,只不过在模块定义方式和模块加载(可以说运行、解析)时机上有所不同

语法
定义模块
define(id?, deps?, factory)

demo

// 定义模块  myModule.js
define(function(require, exports, module) {
  var $ = require('jquery.js')
  $('div').addClass('active');
});

// 加载模块
seajs.use(['myModule.js'], function(my){

});
上一篇 下一篇

猜你喜欢

热点阅读