模块化开发的缘由:jquery
一、引入的js过多而后在加载的过程当中容易出现假死的状态,致使页面会发生白屏webpack
二、变量名的问题 在多人协做开发的时候容易出现变量名的冲突 面向对象es6
三、引入优先级的问题web
模块化开发分类:浏览器
(1).requireJS:babel
参考网址:http://www.requirejs.cn/ app
RequireJS 是基于 AMD 规范的模块加载器,它不依赖于任何 JavaScript 新语言特性,能够直接运行在浏览器环境中。这是个比较老、曾经很是流行的模块加载器,它主要提供的功能是: 异步
ES6 的 Modules:async
可是 es6 Modules 是JavaScript新特性,目前浏览器还不支持,不能直接用,就算之后能够直接用了,若是但愿作到按需、异步加载的话也须要配合相应的加载器来加载 JS 文件。模块化
可是若是你用 webpack 的话,直接用 ES6 是最好的选择。由于:
是彻底覆盖 RequireJS 的全部功能的。
(2).seaJs
(3).commonJS
(4).module
AMD CMD commonjs
模块化:将一个大的功能拆分红若干个小的功能 每个功能都是一个模块
原则:高内聚 低耦合
require使用
0、require其实就是一个js模块加载器
一、引入requirejs
二、设置异步加载 defter async="true"
三、data-main:加载一个入口文件
四、遵循requirejs的规范AMD
无论AMD规范仍是CMD规范仍是COMMONJS规范
所谓的规范就是若是定义模块 如何接受模块
AMD如何定义模块
define()
步骤