模块化是指
解决一个复杂问题或一系列的其他问题,根据思维的问题分解
处理的
分类系统。模块化是一种处理
管理模块是将复杂系统分解为更合理、更易于
维护,并且更易于维护的代码。可以想象一个庞大的系统代码的存在时,整合
优化成一个逻辑模块,软件行业,解耦软件系统的复杂性使得它可以管理,开发和维护,无论系统有多大。
对模块化也有一些定义,即模块化是软件系统的
属性。该系统被分解成一组高内聚、低耦合的模块,在理想状态下,只需完成自己的
核心业务逻辑代码,并可以通过已编写的模块直接加载依赖项的其他方面。
1。AMD
AMD只有一个接口:定义(id、依赖项、工厂);
它必须在声明模块时生成所有依赖项(DEP),也作为工厂的
参数,如下所示:
复制代码代码如下所示:
定义({ 'dep1 ','dep2},
功能(DEP1,DEP2){…});
如果不需要依赖它,就可以定义一个简单的模块。
定义(
函数(){())
var导出= { };
exports.method =函数(){…};
返回出口;
});
这里是定义,包装。在节点实现中,我怎么看不到定义关键字它也需要包装起来。实际上,它只是节点的隐式包装器。
RequireJS是AMD的规范实施
二,CMD
于波写道seajs,遵循CMD规范,他提出,比AMD强一点点,它使用更方便。
三、AMD和CMD的
区别 CMD相当于按需加载。在定义一个模块时,它不需要立即建立依赖模块。当需要时,它可以更方便,而AMD是相反的。在定义模块时,我们需要开发依赖模块,并将工厂引入到参数的形式中。
AMD
模式定义模块
定义({ 'dep1 ','dep2},功能(DEP1,DEP2){
该模块只能使用内部/。
返回(函数){ };
});
定义(函数(需求,导出,模块){)
在这里,如果您需要一个xx模块,可以引入
VaR XX =需要('xx);
});
和seajs也具有使用功能,需要引入到所有相关的模块,如
/ / seajs.use模式
seajs.use({ 'dep1 ','dep2},功能(DEP1,DEP2){
在这里,交易的实现
});
四、
插件支持 但是有两个更流行的Javascript模块化系统在世界各地,一个是CommonJS通过节点,而另一个是AMD。许多类库支持AMD和CommonJS的同时,但不支持CMD。也许这个国家有许多
命令模块,但他们是不受欢迎的世界。
现在火的
反应和周围的类库直接使用CommonJS模块的系统,使用NPM管理模块和输出模块使用browserify包装。
在不久的将来,在新的模块化标准6可能要按照新的标准,而且AMD和CMD可不用时间。
但现在,前端开发是真的没有模块化编程、模块化编程和现在仍
推荐seajs,虽然很多插件需要添加或
修改一个很小的代码来支持它。但它可以反复使用,而不会
影响其他标准支持的整体计算。更方便实用。
AMD和CMD之间的区别是什么
看着上面的AMD,requirejs和CMD,对seajs简单
介绍会感到有一点模糊的感觉更相似,因为,像requirejs,不仅仅是AMD的固有观念,而且具有CMD规范理念。它只推荐AMD规格。seajs也是一样的。
下面是AMD和CMD之间的区别的解释:
AMD是归一化输出requirejs的模块定义的延伸过程中。
CMD是归一化输出seajs的模块定义的延伸过程中。
类似于CommonJS模块/ 2规范,还有很多的模块定义归一化输出bravojs推广过程。
这些规范的
目标是Javascript的模块化开发,尤其是在
浏览器端。
目前,这些规范的实现可以达到浏览器端模块化开发的目的。
差异uff1a
1。相关模块,AMD的
执行时间提前,和CMD延迟执行。但requirejs已经从2延迟执行(根据不同的写作
方法)。加利福尼亚赞赏尽可能懒惰。
2。CMD佩服相依,AMD佩服依赖介词。看代码:
定义(函数(需求,导出,模块){)
var =需要()
A.doSomething()
省略100行
var(=)依赖性可以接近于写
B.doSomething()
…
})
默认值是建议的
必须定义({、、、}、函数(a,b))依赖项
A.doSomething()
省略100行
B.doSomething()
…
})
虽然AMD也支持CMD的写作,它也支持作为依赖的要求。但RequireJS的作者默许最喜欢上面的方法,也是默认的模块定义官方
文件。
三.AMD的API默认是在多次使用CMD的API,严格区分责任,羡慕单。例如,在AMD,需要分为全球需要和当地的需要,所有的需要。在CMD,没有全球性的需要,但基于模块的系统的完整性,seajs.use提供实现该模块系统的加载
启动。
在CMD中,每个API
都是简单而纯净的。
4、有一些细节的区别,具体的规范定义是好的,没什么要说的。