AMD模块
AMD模块:异步加载模块(requireJS)
模块名配置
加载模块的时候,需要用到模块的名称,当模块文件都是在同一目录下,可以把文件名称当做模块名直接加载引用,这些文件必须都是符合AMD规范,即文件里使用define 定义模块过。当然也可以配置非标准的模块,即没有使用define定义。
require(["jquery",],function($){
......
})
再引入模块的时候会首先加载jquery.js和underscore.js,加载完成再执行回调函数。
当不在同一路径下的时候就需要配置模块了,使用require.config()方法,写在文件最上面。path用来定义路径
require.config({
paths: {
"jquery": "./lib/jquery.min",//路径可以是网络地址 https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min
}
});
require(["jquery"],function($){
....
});
有很多库是没有使用AMD规范的,加载的时候必须使用shim属性配置,比如underscore.js,其中exports是模块调用时使用的名称。deps这个模块所依赖的其他模块
require.config({
shim:{
underscore:{
exports: '_',
deps:[],
}
}
path:{
},
})
模块的定义:define
AMD是异步加载的模块,通过define来定义模块导出,要是依赖其他的模块,那第一个参数是一个数组,里面是被依赖的模块。math是一个就是math.js路径的简写,define的回调函数里要返回要用的变量。
define(["math"],function(math){
let a = 1;
let b = function(){
return 34 ;
}
return {
a:a,
b:b
}
});
模块的加载:require
AMD通过require加载模块,
require(["math"],function(){
});
Last updated
Was this helpful?