js 模块加载器 require.js AMD

Tags
javascript
Created
Nov 8, 2015 3:21 PM
<script data-main="js/app.js" src="js/require.js"></script>
加载器加载脚本是异步的<script sync>,加载完执行回调函数
在mianjs/或顶级HTML页面里面可以配置baseUrl和paths,加载没有用define()定义的模块还要配置shim config。
requirejs.config({
baseUrl: 'js/lib',
paths: {
app: '../app'
}});

加载模块:

requirejs(['jquery', 'canvas', 'app/sub'],function($,_,sub){
})
定义模块:
define([依赖的模块],function (变量) {

return {}//换回函数或者对象

})
包装CommonJS(如Node.js)定义模块:
define(function(require, exports, module) {
        var a = require('a');//CommonJS加载方法,记得
        return a;
    }
);
使用JSONP服务
在RequireJS中使用JSON服务,须要将callback参数的值指定为"define"。这意味着你可将获取到的JSONP URL的值看成是一个模块定义。
require(["http://example.com/api/data.json?callback=define"],
    function (data) {
        console.log(data);
    }//仅支持返回值类型为JSON object的JSONP服务
);


SuperMade with Super