前端模块化规范Commonjs/Amd/Cmd

简单描述下区别:

Commonjs: 用于服务器端, 通过export导出模块,require加载模块,module表示模块本身,加载过程为同步, 不适合客户端. nodejs是用commonjs规范

写法: a.js     var a = function(x) {console.log(x)};   module.export = a;

    b.js     var b= reuqire('./a.js);   b('啦!!');

Amd: 常见实现库requirejs, 异步加载

写法: 

// module1.js 

define(

{

    methodA: function() {

  console.log('我是module1的methodA');

    },

    methodB: function() {

  console.log('我是module1的methodB');

    }

})

// module2.js

define(function () {

    return {

  methodA: function() {

    console.log('我是module2的methodA');

  },

  methodB: function() {

    console.log('我是module2的methodB');

  }

    };

});

// module3.js

define(['module1', 'module2'], function(m1, m2) {

    return {

  methodC: function() { m1.methodA(); m2.methodB();}

     };

});

// main.js

require(['module3'], function(m3){ m3.methodC(); });

 

// main.html

<script data-main="main" src="require.js"></script>

 

Cmd跟Amd类似

// CMD

define(function(require, exports, module) {

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

a.doSomething();  // 此处略去 100 行

var b = require('./b');// 依赖可以就近书写

b.doSomething();

// ...

})

 

 

注: 参考 https://www.cnblogs.com/lishuxue/p/6000205.html

posted @ 2019-03-13 20:25  jocoso  阅读(209)  评论(0编辑  收藏  举报