requirejs (AMD)定义规范
先依赖载入执行,再执行自定义模块内容,这样保证了依赖项前置已全部执行完,当然如果被依赖项报错,也就不会执行当前本身模块
定义
define(['./one', './two', './three'], function(one, two, three){
one.say()
// some code
two.say()
// some code
three.say()
})
通过以上定义规则可以发现,依赖项是需要提前加载执行的。 而本模块代码依赖时在对应的上下文使用模块对象即可。(requirejs 2.0后开始支持 模块内 require('./somemodule'), 虽然支持了这种书写形式,不过模块的加载执行顺序貌似还是依赖前置预先执行的,之后才是本模块的代码执行)多个模块虽然是并行加载,但不一定按顺序执行,那个快就先执行那个。不过还好对于后面的实参部分模块顺序是一致的。
使用
require.config({
paths: {
'main': './js/main'
'模块别名', '实际路径' || ['实际路径1', '实际路径2'] // [] 当前面的资源下载有问题是会使用后面的进行下载
}
})
require('main', function() {
// do something
})
seajs (CMD)定义规范
定义
define(functon(require, exports, module){
var a = require('./one')
//do something
a.say()
var b = require('./two')
// do something
b.say()
// some code 并导出模块
return {
a: 1,
b: 2
}
})
使用
html:
seajs.config({
alias: {
'别名': '原库模块名'
},
paths: {
‘模块’: '路径'
}
})
seajs.use('模块入口文件')
网友评论