模块配置
模块全局化配置,一般情况下置于require调用前面,以免申明依赖关系没加载导致的错误。
require.config({
baseUrl:'url',//所有模块的查找根路径
paths:{ //path映射那些不直接放置于baseUrl下的模块名,别名定义
"jquery":"js/lib/jquery"
},
shim:{//浏览器全局变量注入"型脚本做依赖和导出配置
'backbone': {
deps: ['underscore', 'jquery'],//依赖关系
exports: 'Backbone'//引用别名
},
'underscore': {
exports: '_'
},
}
})
定义模块 define
define([], function(){})中第一个参数是依赖的名称数组,第二个参数是函数用于返回定义模块
作用是 : 申明了一个模块且这个模块被其他部分所依赖
requirejs的依赖为 依赖前置
举个简单的定义的例子:
define([require,path/Mod1,path/Mod2], function(require){
var mod1 = require('path/Mod1'), mod2 = require('path/Mod2');
})
其实逻辑上类似于以下
//方法一
define([require], function(require){
var mod1 = require('path/Mod1'), mod2 = require('path/Mod2');
})
//方法二
define([require,path/Mod1,path/Mod2], function(require){
var mod1 = arguments[1], mod2 = arguments[2];
})
//方法三
define([require,path/Mod1,path/Mod2],function(require,mod1,mod2){
// 这里 mod1 和 mod2 都准备好了,还可以用require继续加载别的
})
//方法四
define([path/Mod1,path/Mod2], function(mod1,mod2){
})
一般情况下 define 的function 会有return 来返回定义模块或接口
加载模块require
require([], function() { });第一个参数为依赖的模块列表,第二个参数为执行的函数。
方法同define,但是不需要 return 返回模块,内容为执行内容。