sap.ui.require in SAP UI5 and require in nodejs

UI5

例如我須要在controller的onShowHello裏經過MessageToast彈一個消息顯示在UI上,
node

我須要先定義我本身的controller,該controller extend自UI5標準的controller module,路徑爲sap/ui/core/mvc/Controller, 而爲了調用MessageToast的show方法,也必須先拿到MessageToast的實例。因此UI5裏使用sap.ui.define去加載這兩個依賴的module,加載完成後,會調用應用開發人員傳入的回調函數,加載的兩個module的內容做爲兩個輸入參數傳入該回調函數。jquery

UI5全部的module由jquery.sap.global.js中的Module統一管理。mvc

更多細節請查看個人SAP前同事Wu Ji的博客SAPUI5 walkthrough step 6 – modules, dive in – how does modules work?框架

固然也存在sap.ui.require這種簡潔用法。一個UI5框架的使用例子:函數

nodejs

邏輯和UI5相似,假設我想使用queryString這個module,只須要用nodejs標準的require函數將其引入:ui

而後就可在應用代碼裏使用該module經過module.exports暴露出的方法:spa

require調用internal/module.js裏的self.require:3d

而後是Module._load:對象

nodejs也有相似UI5的module統一管理器:Module._cache. 每次加載module時,首先從這個管理器裏查看是否該module已經加載。只有當module在管理器裏不存在時纔會真正加載,new一個Module對象,維護好屬性後存入module管理器。blog

加載好的module就是一系列function的集合:

相關文章
相關標籤/搜索