对ui5的一些总结和思考

在帮助同事解决了函数作用域的问题之后,突然觉得有必要梳理一下ui5的知识。
ui5的逻辑控制器采用了amd规范,可以实现异步加载。关于amd规范可以参考:
http://www.jianshu.com/p/9b44a1fa8a96

and规范制定了一种匿名定义模块的方式:
如果在使用define()的时候省略了第一个参数,即省略了模块的名字,这个时候模块的名字会被默认为当前模块的文件名,那么字加载这个模块的时候可以通过文件名称加载。
define([依赖项],function(使用依赖项){return {a:b}})
上面的代码定义了一个匿名的模块,这个模块被加载以后会返回一个带有若干属性的对象,这个对象里面的属性可以被其它模块使用。当依赖项加载完成以后,会执行function。
同理ui5也支持require([],function(){})这种方式来使用模块,require方法可以返回一个promise对象,可以在promise的then方法中指定接下来的动作
ui5中的controller有一个extend(classname,oclass),该方法会返回一个controller对象的子类,名字是classname,这个子类会被oclass的属性增强,也就是这个子类会继承controller和oclass中的所有属性。

实际上可以在js文件中的任何位置使用js全局对象或者执行js代码,通过这种方式我们可以增加一些动态性。

你可能感兴趣的:(ui5)