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
に設定します。
組み込みモジュールの新しい使用方法
組み込みモジュールは、独立したモジュールに分割されるのではなく、1つのモジュールにグループ化されるようになりました。そのため、他のモジュールとの競合なしに使用できます
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 });
API名に関するDOMの規約に従う
ElectronのAPI名は、Url
をURL
のように、すべてのAPI名でcamelCaseを優先していましたが、DOMには独自の規約があり、URL
をUrl
、Id
をID
の代わりに使用することを好みます。DOMのスタイルに合わせて、次のAPIの名前変更を行いました。
Url
はURL
に名前変更されました。Csp
はCSP
に名前変更されました。
これらの変更のため、アプリでElectron v0.35.0を使用すると、多くの非推奨事項が表示されます。それらを修正する簡単な方法は、Url
のすべてのインスタンスをURL
に置き換えることです。
Tray
のイベント名の変更
Tray
イベント名のスタイルは他のモジュールとは少し異なっていたため、他のモジュールと一致するように名前が変更されました。
clicked
はclick
に名前変更されました。double-clicked
はdouble-click
に名前変更されました。right-clicked
はright-click
に名前変更されました。