在SAPUI5,所有的资源都可以称为模块
模块化开发有一个好处,无论是代码重用、后期维护还是可读性来讲,都有着得天独厚的优势。
比如MessageToast,Dialog等等标准控件模块。
同时,我们也可以定义自己的通用模块,以达到代码重用,这样我们以后在做类似的功能的时候就可以直接copy过来。
AMD加载机制(异步加载)
描述了模块定义,依赖关系,引用关系
AMD规范已经被多个框架所使用比如NodeJS等
在SAPUI5中也是使用最为广泛的一种模块定义方式
异步加载又叫非阻塞,浏览器在下载执行 js 同时,还会继续进行后续页面的处理。
这种方法是在页面中script标签内,用 js 创建一个 script 元素并插入到 document 中。这样就做到了非阻塞的下载 js 代码。
下面我们来完整得实现一个modules
首先在view页创建一个BUTTON,给予他一个点击事件。
<Button text="click" press="onPress">
然后我们需要在model包下创建一个util的工具类
sap.ui.define([], function() {
return{
generateRandom: function(){
return Math.random();
}
};
});
这里我们就简单的生成一个随机数
接下来 我们需要到controller下引入我们model包下的unit工具类
Sap.ui.define()[
“sap/ui/core/mvc/Controller”,
“sap/m/MessageToast”//引入模块
],function(Controller,MessageToast){//模块的实现
});
最后调用他就可以了
return Controller.extend("willModulesExe.controller.HelloModules", {
onInit:function(){
},
onPress:function(oEvent){
MessageToast.show(util.generateRandom());
}
});
});