什么是模块化开发?模块化开发有哪些方法

前几天面试虾皮问了什么是模块化,没有解答清除。
1.什么是模块化?
简单地说,模块化就是有组织地把一个大程序拆分成独立并互相依赖的多个小文件(模块)。
模块内部有许多私有属性,只向外暴露一部分公开的接口(如可以修改私有属性的方法等)

2.为什么要模块化?
ES6之前,JavaScript语言一直没有模块(module)体系,无法把大文件有组织地划分成小块,并管理之间地依赖。但是模块化的思想一直存在。因为用Javascript写的代码越来越庞大,而网页也越来越像桌面APP。如此庞杂的代码,如果不进行模块化,就可能引发命名冲突,造成不易复用、维护性高。

一个文件对应一个模块。

总结:
最开始,JavaScript没有模块。后来:
1.有CommoneJS规范,最典型的实践就是Node.js,主要使用在服务器端,同步加载模块;
2.有AMD,最典型的实践就是RequireJS,依赖前置,主要使用在浏览器端,异步加载模块。
3.有CMD,最典型的实践就是sea.js,依赖就近,主要使用在浏览器端,异步加载模块。
4.有ES6的Module,在语言层面定义了模块,通过export和import,吸收了CommoneJS和AMD两者的优点,兼容两标准的规范。

AMD和CMD的区别:
1.在模块定义时对依赖的处理不同。AMD推荐依赖前置,定义模块时就声明其依赖的模块,而CMD就近依赖,只有在用到某个模块的时候再去require。
2.对依赖模块的执行时机处理不同。首先都是异步加载,区别在于模块执行时机,AMD是在依赖模块加载完成后就直接执行依赖模块,执行顺序和书写顺序不一致;CMD是在依赖模块加载完成后并不执行,只是下载,等待所有的依赖的模块都加载好后,再进入回调函数,遇到require语句才执行对应的模块,书写顺序保持一致。

import适合的场合
(1)按需加载
(2)条件加载
(3)动态的模块路径

参考:
前端模块化是什么

  • 6
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值