js模块化提供了三种规范前端
一、commonjs规范,表明就是node.js 它是运行在服务器端的,适合后台开发,它不适合前端,由于前端的客户端是浏览器,浏览器追求异步加载,等待时间不能太长,若是非要运行在浏览器,则须要借助打包工具进行打包,解析node
二、前端模块化的规范是AMD规范,全程叫async module defintion 异步模块加载机制es6
三、第三个模块化规范是es6数组
简单说下commonjs吧浏览器
comminjs是node的规范,但他是同步加载的,同步加载在浏览器是有弊端的,只要一个环节卡住了,后面的就无法执行。服务器
模块化都是两个方向:异步
1是暴露模块 module.exports={} 本质就是暴露的是一个exports对象async
2引入模块 require模块化
上面说过,它是后台的规范,是运行在服务器端的。函数
自定义模块:
什么是自定义模块,顾名思义,就是本身本身写的模块,不依赖任何规范。
下面我举个例子
AMD规范的模块化:
require()函数接受两个参数:
——第一个参数是一个数组,表示所依赖的模块;
——第二个参数是一个回调函数,当前面指定的模块都加载成功后,它将被调用。加载的模块会以参数形式传入该函数,从而在回调函数内部就能够使用这些模块