在AMD规范中有两个全局函数,一个是require一个是define,其中require用于加载模块,define用于定义模块,require函数中有两个参数,第一个是模块的名称数组,第二个是加载模块成功之后的回调函数,用法为:require([module], callback);
自定义模块步骤
1. 定义模块2. 设置Dojo加载包参数
3. 引入Dojo.js库
4. 通过require使用自定义模块
具体实现
1.定义模块-->新建工程文件夹web-->在web文件夹下载建dojodefinetest文件夹-->在里面新建一个js文件名为js.js
js.js代码块:
define(function(){
return {
deal: function () {
alert(10);
}
};
});
2.在工程文件夹web下面新建一个html文件名为dojodefinetest.html添加script标签编写dojoConfig配置代码:
//定义dojo自定义模块加载包路径
<script>
//定义dojo自定义模块加载包路径
var dojoConfig = {
packages: [
{
name: 'dojodefinetest',//包名
location: location.pathname.replace(/\/[^/]*$/,'') + '/dojodefinetest'
}
]
};
</script>
3.在加载dojo.js文件库:
<script src="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js"></script>
4.测试使用自定代码块:
<script>
// 使用自定义的模块
require(['dojodefinetest/js'], function (js) {
js.deal();
});
</script>
结果弹出10:
index.html完整代码如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>AMD自定义模块</title>
<script>
//定义dojo自定义模块加载包路径
var dojoConfig = {
packages: [
{
name: 'dojodefinetest',//包名
location: location.pathname.replace(/\/[^/]*$/,'') + '/dojodefinetest'
}
]
};
</script>
<!--引入dojo库-->
<script src="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js"></script>
</head>
<body>
<script>
// 使用自定义的模块
require(['dojodefinetest/js'], function (js) {
js.deal();
});
</script>
</body>
</html>
参考文章:https://blog.csdn.net/lovecarpenter/article/details/53932407https://blog.csdn.net/yongye_/article/details/62429158