模块示意
CommonJs 规范在 Node 中大放异彩并且相互促进,但是在浏览器端,鉴于网络的原因,同步的方式加载模块显然不太实用,在经过一段争执之后,AMD 规范最终在前端场景中胜出(全称 Asynchronous Module Definition,即“异步模块定义”)
什么是 AMD,为什么需要 AMD ?在前述模块化实现的推演过程中,你应该能够找到答案
除此之外还有国内玉伯提出的 CMD 规范,AMD 和 CMD 的差异主要是,前者需要在定义之初声明所有的依赖,后者可以在任意时机动态引入模块。CMD 更接近于 CommonJS
两种规范都需要从远程网络中载入模块,不同之处在于,前者是预加载,后者是延迟加载
五、总结
如果有心,可以参照本文的推演,来实现一个 “yourRequireJs”,没有什么比重复造轮子更能让知识沉淀~~
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持黑区网络。