由于这个规范不是原生js
支持的,所以要先引入第三方库文件(RequireJS)才能实现。解决了多个js
文件之间的依赖关系问题。也遗留了一个问题:js
加载的时候浏览器会停止页面渲染,加载文件越多,页面失去响应时间。
例:c文件依赖a文件/c文件依赖a文件和b文件/c文件依赖b文件,b文件依赖a文件
a.js文件
define(function(){
var a = 1
return {a}
})
define函数用来定义模块,被别的模块导入。
其中define的参数1表示当前模块的名称,别的模块导入当前模块的时候使用这个名称代表当前模块
b.js文件
define(['./a.js'], ['moduleA'], function(moduleA){
var b = 2
return {b,moduleA}
})
define函数在定义模块的同时也可以依赖别的模块,如上代码,参数2表示依赖的模块。回调函数中的参数,是在回调函数中使用依赖模块中数据时对别的模块起的别名,或可理解为将别模块使用这个参数接收
c.js文件
require(['./b.js'], function(moduleB){
console.log(moduleB)
})
require函数作为最终的处理函数,参数1是依赖的模块,参数2是对所有逻辑的处理。</