requirejs与seajs规范

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('模块入口文件')

你可能感兴趣的:(requirejs与seajs规范)