当前位置: 首页 > Web前端 > HTML5

SAPUI5应用程序的Component.js文件是如何在运行时加载的?

时间:2023-04-05 13:03:08 HTML5

一个问题,Component.js文件中的程序是怎么调用的?我看到在index.js中,只指定了路径,并没有指定文件名。然后尝试将文件名改为component.js(首字母小写),调试发现无法加载文件。这个文件名是在SAPUI5中硬编码的吗?答:本地访问url,打开Chrome开发者工具,切换到Network选项卡,在输入框中输入component.js,发现加载了我们写的Component.js文件:把鼠标放在initiator栏,You可以看到发起文件请求的调用栈:点击下图中高亮区域,即Component-dbg.js文件的第3361行:在该行设置断点,然后刷新浏览器,断点触发:按F11单步调试进去:到这里发现确实和提问的朋友说的一样。Component的文件名在SAPUI5中是硬编码的,将首字母改成小写c是行不通的。下面的代码首先将我们的自定义命名空间sap.ui5.walkthrough与应用程序中的.Component连接起来,然后替换掉所有的.在连接的字符串中加上/:最后,使用SAPUI5标准工具库加载这个Component.js文件:SAPUI5模块是可以在浏览器中加载和执行的JavaScript文件。关于哪些代码应该属于一个模块并没有固定的规则——捆绑在一个模块中的内容取决于开发人员,但通常一个模块中的内容应该有一个共同的主题。这是一个模块的例子:sap.ui.define("SomeClass",['sap/mylib/Helper','sap/m/Bar'],function(Helper,Bar){//创建一个新类varSomeClass=function(){};//向其原型添加方法SomeClass.prototype.foo=function(){//在同一包中使用依赖项'Helper'中的函数(例如'sap/mylib/Helper')varmSettings=Helper.foo();//创建并返回一个sap.m.Bar(使用其本地名称“Bar”)returnnewBar(mSettings);};//将类作为模块值返回returnSomeClass;});//稍后需要先前定义的模块ap.ui.require(['SomeClass'],function(SomeClass){varoInstance=newSomeClass();});上面sap.ui.define函数的第二个入参是模块依赖。将每个依赖项添加到sap.ui.define调用会导致许多模块在执行之前必须加载。