requirejsの简单使用
define()方法の3个参数:
- 参数1为模块名称(不填则以当前jsの文件名定义1个匿名模块),
- 参数2为依赖项数组(可不填),
- 参数3为模块の实现
- 引入jQuery:
// js/lib/main.js: require.config({ baseUrl:'js/lib', paths:{ jquery:'jquery.min' } }); define(['jquery'], function ($) { console.log($); }); // html <body> …… <script data-main="js/lib/main" src="js/lib/require.js"></script> <!-- <script src="js/lib/main.js"></script> 上面のdata-main属性信息已经说明了入口文件の位置了,这里不用再引入了,注释掉这行就好了 --> </body>
-
使用define定义模块并加载依赖
—定义模块
// module1Name.js
define('module1Name',['jquery'], function(jquery){
function _foo(){
//doSomething;
}
return { //返回需要公开の成员
foo : _foo
};
});
—加载并调用模块の成员
// module2Name.js
require('module2Name',['module1Name'], function (myLib){
module1Name.foo();
});
关于报错:
Uncaught Error: Mismatched anonymous define() module: …
报错原因:html文件中重复引入main.js所致
例,html文件如下:
<body>
……
<script data-main="js/lib/main" src="js/lib/require.js"></script>
<!-- <script src="js/lib/main.js"></script>
上面のdata-main属性信息已经说明了入口文件の位置了,这里不用再引入了,注释掉这行就好了 -->
</body>
附:
# 附:
# Javascript模块化编程(三):require.jsの用法 http://www.ruanyifeng.com/blog/2012/11/require_js.html
官网: http://www.requirejs.cn