RequireJS 2.x —— 模块的相互引用

来源:互联网 发布:林珊珊的淘宝店 编辑:程序博客网 时间:2024/04/30 15:11


test.html文件内容

<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><script type="text/javascript" src="http://www.domaintrade.com/requirejs/assets/global/js/require-debug.js"></script></head><body><script type="text/javascript">//配置基本信息require.config({baseUrl: "http://www.domaintrade.com/requirejs/assets/",paths: {  "jquery": "global/js/jquery-1.8.3",}});// 使用模块,链式调用// require是异步调用,是加载完成依赖,再调用回调// require放在define方法中的时候,并不能保证模块“exports的方法”是有效的// 在define中要“exports方法”的时候,不要使用require去引用依赖,而是在模块前直接声明依赖require(["modules/module1/define"], function(module1) { module1.console('modules/module1/define');})(["modules/module2/define"], function(module2) { module2.console1('link invoke1 modules/module2/define'); module2.console2('link invoke2 modules/module2/define'); module2.console3('link invoke3 modules/module2/define');})</script></body></html>

module1\define.js文件内容

// 声明依赖,会即可加载module2define(['jquery','modules/module2/define'],function(jquery,module2) {console.log('loaded module 1...');module2.console1('invoke module2 console1');module2.console2('invoke module2 console2');module2.console3('invoke module2 console3');return {console : function(str){console.log(str);}};});

module2\define.js文件内容

// 声明依赖,会即可加载module3define(['modules/module3/define','require','exports','module'],function(module3,require,exports,module) {console.log('loaded module 2 begain...');console.log('bing module3 mehtod ...');exports.console1 = module3.console;exports.console2 = module3.console;exports.console3 = module3.console;console.log('loaded module 2 end...');});

module3\define.js文件内容

// 标准的模块化写法,前面不能声明依赖define(function(require,exports,module) {console.log('loaded module 3...');module.exports = {console : function(str){console.log(str);}};});



0 0