什么是模块化?
将一个复杂的程序依据一定的规则(规范)封装成几个块(文件),并进行组合在一起,块的内部数据/实现是私有的,只是向外部暴露一些接口(方法)与外部其他模块通信
为什么要模块化?
降低复杂度和耦合度
模块化的好处?
1.避免命名冲突
2.更好的分离,按需加载
3.更高复用性
4.高可维护性
CommonJS规范
开始只是用于服务端,后来出现了专门用于浏览器端的AMD规范,CommonJS也兼容浏览器端
语法
暴露:1.module.exports = value2.exports.xxx = value
引入:let xxx = require('xx/xx') //引入自己的模块使用相对路径,引入第三方模块写包名
> 使用require引入的本质是什么? --> 是exports对象
实现
服务端实现 --> Node.js,模块加载是同步的
浏览器端实现 --> 借助Browserify进行打包,安装Browserify需要 --save--dev
AMD规范
专门用于浏览器端,模块加载是异步的