Electron 1.0 版本即将到来的 API 变更
自从 Electron 诞生之初,那时它还被称为 Atom-Shell,我们就一直在尝试为 Chromium 的内容模块和原生 GUI 组件提供一个友好的跨平台 JavaScript API。这些 API 最初是有机地发展起来的,随着时间的推移,我们对最初的设计进行了一些更改以进行改进。
现在 Electron 正准备发布 1.0 版本,我们希望借此机会通过解决最后一些细微的 API 细节来进行更改。下面描述的更改包含在 0.35.x 中,旧的 API 会报告弃用警告,以便您可以及时更新以适应未来的 1.0 版本。Electron 1.0 版本在几个月后才会发布,因此您有时间在这些更改成为破坏性更改之前进行更新。
弃用警告
默认情况下,如果您正在使用已弃用的 API,将显示警告。要关闭它们,您可以将 process.noDeprecation
设置为 true
。要跟踪已弃用 API 用法的来源,您可以将 process.throwDeprecation
设置为 true
以抛出异常而不是打印警告,或者将 process.traceDeprecation
设置为 true
以打印弃用跟踪。
使用内置模块的新方法
内置模块现在被分组到一个模块中,而不是分成独立的模块,因此您可以在不与其他模块冲突的情况下使用它们
var app = require('electron').app;
var BrowserWindow = require('electron').BrowserWindow;
旧的 require('app')
方法仍然为了向后兼容而受支持,但您也可以将其关闭
require('electron').hideInternalModules();
require('app'); // throws error.
更轻松地使用 remote
模块的方法
由于使用内置模块的方式已更改,我们使在渲染器进程中使用主进程端模块变得更加容易。您现在只需访问 remote
的属性即可使用它们
// New way.
var app = require('electron').remote.app;
var BrowserWindow = require('electron').remote.BrowserWindow;
而不是使用长的 require 链
// Old way.
var app = require('electron').remote.require('app');
var BrowserWindow = require('electron').remote.require('BrowserWindow');
拆分 ipc
模块
ipc
模块同时存在于主进程和渲染器进程中,并且在每一侧的 API 都不同,这对于新用户来说非常容易混淆。我们已将主进程中的模块重命名为 ipcMain
,并将渲染器进程中的模块重命名为 ipcRenderer
,以避免混淆
// In main process.
var ipcMain = require('electron').ipcMain;
// In renderer process.
var ipcRenderer = require('electron').ipcRenderer;
对于 ipcRenderer
模块,在接收消息时添加了一个额外的 event
对象,以匹配 ipcMain
模块中处理消息的方式
ipcRenderer.on('message', function (event) {
console.log(event);
});
标准化 BrowserWindow
选项
BrowserWindow
选项具有基于其他 API 选项的不同样式,并且由于名称中包含 -
,因此在 JavaScript 中有点难以使用。它们现在已标准化为传统的 JavaScript 名称
new BrowserWindow({ minWidth: 800, minHeight: 600 });
遵循 DOM 的 API 名称约定
Electron 中的 API 名称过去倾向于对所有 API 名称使用 camelCase,例如 Url
而不是 URL
,但 DOM 有其自己的约定,他们更喜欢 URL
而不是 Url
,同时使用 Id
而不是 ID
。我们已完成以下 API 重命名以匹配 DOM 的样式
Url
重命名为URL
Csp
重命名为CSP
当您为您的应用使用 Electron v0.35.0 时,由于这些更改,您会注意到许多弃用。修复它们的简单方法是将所有 Url
实例替换为 URL
。
Tray
的事件名称更改
Tray
事件名称的样式与其他模块略有不同,因此已完成重命名以使其与其他模块匹配。
clicked
重命名为click
double-clicked
重命名为double-click
right-clicked
重命名为right-click