/*
引入优先级
命名冲突
a.js
var a = 10;
var b = 10;
b.js
alert(a)
var b = 30;
先入b ?在引入a
模块加载 ?
模块:功能
轮播图 模块 ?在面向对象的轮播图当中 属性和方法都是在局部进行书写的
requireJS:
模块加载器 ???加载js ??会把js里面的每一个功能都当做一个模块 ??可以减少各个模块之间的依赖
模块化开发
requireJS ?seaJS ????commonJS ?????????ES6 module
??????????????????玉伯 ?????NOdejs的规范 ????ES6新增的模块化
??????????????????废除掉了
require遵循的规范:
AMD规范 ???依赖前置 ????定义模块的时候define定义
seaJS遵循的一个规范
CMD规范 ???依赖就近
COMMON遵循的规范
COMMONJS规范 ?引入require引入
ES6 module
引入import ??导出的时候 exports
1、总结
什么require:
模块化加载器
解决的问题
1、文件引入的优先级
2、命名的冲突
3、加载的速度
2、对require的认识
遵循AMD规范 ??AMD的规范是依赖前置 ???意思就是提前加载模块 ?采用的是异步加载的方式 ?
定义模块的时候用define进行定义
通过一个入口文件将所有的js进行提前加载
app.js
入口文件 ?require文件 ?config文件必须在同一目录
3、requireJS使用的步骤
1、引入requireJS
2、加载入口文件(异步加载的文件) ??data-main="入口文件地址" ?后缀不需要加js ?
defer async="true" 异步加载文件
3、配置config文件
baseUrl:公共的路径
paths:
模块所对应的路径
4、app.js中引入config
require(["config"],function(){
require(["模块A","模块B"],function(模块A,模块B){
})
})
5、定义模块
用define进行定义
导出 ?return导出一个对象
*/
</script>
require.js 初探
原文地址:https://www.cnblogs.com/carolavie/p/9750768.html