前端模块化
Js提供了三种规范:
1, commonjs规范··代表的就是node.js··适合后台开发·因为是同步的·服务器的运行比较快,等待时间不长,common.js不适合用于前端,前端的客户端是浏览器,浏览器追求异步加载,浏览器不能等待太长时间
2,前端模块的规范是Amd规范,代表就是requirejs,他是异步的,很多前端框架都是用的amd规范
比如jquery,Agular3,第三个模块化规范是es6
模块化的操作:
1,commonjs的操作:
所以的模块化都是两个方向,暴露模块接口和引入模块
Module.exports={}暴露的是一个叫exports对象
Require引入一个模块
这是后台的规范,在nodejs环境可以直接运行,但是在客户端不能直接运行,需要对文件打包解析,webpack gulp
拓展:
var a;
var a 就是声明一个变量a,就是浏览器往window上添加一个属性a前端模块:
自定义前端模块案例分析:
定义一个bao1模块,注意事项:
依赖关系不能出错,
这种模块的缺点---会发送多次请求,依赖关系不能放错顺序
前端模块化规范amd
amd是前端模块化的一种规范,全称 async module definition 异步模块加载机制,所以需要按照这个规范去定义模块和使用模块1, Require提供了一个全局方法,叫 Define() 用来定义模块
定义模块分两种:
* 不依赖其他模块
* 依赖其他模块
不依赖其他模块:
依赖其他模块:
RequireJS:
是一个JavaScript文件和模块加载器