深入浅出Node.js读书笔记:Node.js的前后端共用模块(2.7)

Javascript在Node出现之后,比别的编程语言多了一项优势,就是一些模块可以在前后端共用,这是因为很多API在各个宿主环境下都提供。

2.7.1 模块的侧重点

前后端Javascript分别搁置在Http的两端,它们扮演的角色并不同。客户端而言,它是从同一个服务器端分发到多个客户端执行。而服务器端相同的代码需要多次执行,前者的瓶颈是带宽,后者的瓶颈则在于CPU和内存资源等。

鉴于网络原因, CommonJS为后端制定的规范并不适合前端的应用场景。经过一段时间后,AMD(Asynchronous Module Definition)规范胜出。

2.7.2 AMD规范

AMD规范是CommonJS模块规范的一个延伸,它的模块定义如下:

define(id?,dependencies?,factory);

它的模块id和依赖是可选择的,与Node模块相似的地方在于factory的内容就是实际代码的内容。

下面代码定义一个简单的模块:

define(function(){
var exports = {};
exports.sayHello = function(){
alert(‘hello from module:’+module.id);
};
});

不同之处有两点:
1.AMD需要用define明确定义一个模块,而Node实现是隐士包装。
2.AMD的内容需要通过返回的方式实现导出。

2.7.3 CMD规范

CMD规范与AMD规范主要区别在于定义模块和依赖引入的部分。AMD需要在声明模块的时候指定所有的依赖,通过形参传递依赖到模块内容中:

define([‘dep1’,‘dep2’],function(dep1,dep2){
return function(){};
});

与AMD规范相比,CMD规范更接近于Node对CommonJS规范的定义。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值