很长一段时间我都是通过制作全局变量来创建应用程序,这个变量可以通过我加载的模块访问。
var myApp = {
windows: {}
}
myApp.windows.mainWindow = require('libs/pages/mainWindow').create();
myApp.windows.mainWindow.open();
通过调用myApp.windows[windowName][functionName]
,我可以在commonJS模块中操作其他窗口(例如更新列表)。我也可以关闭,打开其他窗户
我发现从commonJS模块中调用全局变量并不是一种好的做法(并且在推送应用程序时遇到了一些问题)。
如果从commonJS模块加载窗口内容,访问其他窗口的最佳方法是什么?
答案 0 :(得分:1)
创建一个模块libs / Globals.js:
Globals = function () {};
Globals.windows = {};
module.exports = Globals;
现在在你的app.js中,你这样做:
var G = require ('libs/Globals')
G.windows.mainWindow = require('libs/pages/mainWindow').create();
每当你想从另一个CommonJS模块中引用其中一个窗口的实例时,只需使用Globals模块:
var G = require ('libs/Globals')
G.windows.mainWindow.close ();
在您认为关闭并销毁它们之后,请小心保留对这些窗口的引用。如果在全局模块中保留对它们的引用,它们将不会被垃圾收集,并且您可能会创建内存/资源泄漏。