requirejs

//index.html
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<!--
<script data-main="js/main" src="require.js"></script>
--> <script data-main="js/test" src="js/require.js"></script>
</head>
<body>
<script>
</script>
</body>
</html>

//test.js

requirejs.config({
//默认相对于html页面, baseUrl指定为相对页面下的js目录
baseUrl : "js",
//这个可以是缩写
paths : { },
//这个里面指定的是顺序,就像backbone需要jq和underscore一样;
shim : []
});

//加载lib目录下的test1,并执行返回对象下的App
requirejs(["lib/test1"],function(test1){
test1.App();
})

  

test1.js

//依赖模块m1 和 m2
//如果依赖是以".." “/”做开头或者是“.js"作结尾查询目录的方式就不是根据正常的查找了
define(["model/m1","model/m2"],function (m1,m2) {
return {
App : function(){
console.log( m1 );
m2;
return "App is runing"
}
};
});

  

model/m1.js

define(function(){
return "m1"
})

  

model/m2.js

//这个又是依赖控制器c1 和 c2了;
//这个是变成当前目录上的目录下的/controller/xx
define(["../controller/c1","../controller/c2"],function(c1,c2){
console.log( c1 )
console.log( c2 );
return "m2"
})

  

//controller/c1.js

define(function(){
return "this is c1"
})

  

//controller/c2.js

//这个又开始依赖view目录下的v1了,
define(["view/v1"],function(v1){
return "this is c2"
})

  

//如此就变成一个个模块了,开发就方便一些了,代码就不会一大堆了

上一篇:POJ 2631 Roads in the North (模板题)(树的直径)


下一篇:算法导论-钢条切割 C# 递归实现