Javascript “sap.ui.require”或“sap.ui.define”中的哪一个我应该使用?

Javascript “sap.ui.require”或“sap.ui.define”中的哪一个我应该使用?,javascript,sapui5,amd,Javascript,Sapui5,Amd,据我所知,在许多情况下,sap.ui.require和sap.ui.define是可互换的。然而,有一个问题: 对控制器和所有其他JavaScript模块使用sap.ui.define,以定义全局命名空间。使用名称空间,可以在整个应用程序中寻址对象 使用sap.ui.require异步加载依赖项,但不声明名称空间,例如只需要执行但不需要从其他代码调用的代码 这个声明我读了好几遍,但我不确定我是否完全理解。 例如,当我为特定的UI5视图编写UI5控制器时,我应该使用什么?当我编写一个Bas

据我所知,在许多情况下,
sap.ui.require
sap.ui.define
是可互换的。然而,有一个问题:

  • 对控制器和所有其他JavaScript模块使用
    sap.ui.define
    ,以定义全局命名空间。使用名称空间,可以在整个应用程序中寻址对象

  • 使用
    sap.ui.require
    异步加载依赖项,但不声明名称空间,例如只需要执行但不需要从其他代码调用的代码

这个声明我读了好几遍,但我不确定我是否完全理解。 例如,当我为特定的UI5视图编写UI5控制器时,我应该使用什么?当我编写一个
BaseController.js
(其余的控制器将基于它)时,我应该选择
sap.ui.define
还是
sap.ui.require

对SAPUI5团队来说,
sap.ui.define
类似于ES6模块中的静态
import
export
语句,而
sap.ui.require
更像是动态
import()
语句

基本上所有的UI5模块定义(包括视图控制器代码)都应该从 SAP.UI开始。在顶层定义,而 SAP.UI应该使用,如果在代码的中间,我想导入一些其他的UI5模块。

有关此主题的详细信息: