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