前端刀耕火种到模块化开发

本文探讨了模块化编程的起源及其在前后端开发中的重要性。从CommonJS的同步加载到AMD和CMD的异步模块定义,再到ES6模块化,详细解析了不同模块化规范的特点与应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为什么要模块化开发:

因为有了模块,我们就可以更方便地使用别人的代码,想要什么功能,就加载什么模块。但是有个前提:标准的统一

读懂这篇文章:

https://blog.youkuaiyun.com/m_review/article/details/78643967

前端模块化的诞生:

CommonJS:

2009年,美国程序员Ryan Dahl创造了node.js项目,将javascript语言用于服务器端编程。这标志"Javascript模块化编程"正式诞生。 NodeJS是CommonJS规范的实现,webpack 也是以CommonJS的形式来书写。(其实2007年国外模块化已经出现)

CommonJS是同步加载模块的。对于后端,加载模块的速度取决于计算机硬盘的读写速度(速度很快)。但是对于前端。我们需要等模块加载完毕才能执行相对应的操作。这个时候浏览器会处在假死状态(js语言单线程决定的)。

AMD:

对于以上问题。对于模块加载。我们需要执行异步操作,不能同步去处理。由此就出现异步加载的规范 AMD。AMD是"Asynchronous Module Definition"的缩写。意思就是"异步模块定义"。它采用异步方式加载模块,模块的加载不影响它后面语句的运行。所有依赖这个模块的语句,都定义在一个回调函数中,等到加载完成之后,这个回调函数才会运行。

CMD:

大名远扬的玉伯写了seajs,就是遵循他提出的CMD规范,与AMD蛮相近的,不过用起来感觉更加方便些,最重要的是中文版,应有尽有:seajs官方doc

对比AMD和CMD的异同

https://github.com/seajs/seajs/issues/277

关于ES6模块化

https://juejin.im/post/5c17ad756fb9a049ff4e0a62

最后附上需要深入了解链接:

https://www.cnblogs.com/chenguangliang/p/5856701.html

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值