Wie Node-Webkit stellt Electron eine Plattform Desktop Anwendungen mit JavaScript und HTML zu schreiben, und hat Knoten Integration zu Zugriff auf Low-Level-System in Webseiten gewähren.
Aber es gibt auch grundlegende Unterschiede zwischen den beiden Projekten , die ein völlig eigenständiges Produkt von Node-Webkit machen Electron:
1 - Eingabe von Anwendungs
In NW.js den Haupteintrittspunkt einer Anwendung ist eine Webseite oder ein JS Skript. Sie geben eine html- oder js-Datei in der Datei package.json an, und sie wird in einem Browserfenster als Hauptfenster der Anwendung (im Fall eines HTML-Einstiegspunkts) geöffnet oder das Skript ausgeführt.
Während in Electron ist der Einstiegspunkt ein JavaScript-Skript, anstatt eine URL direkt zur Verfügung zu stellen, müssen Sie manuell ein Browserfenster erstellen und html-Datei darin mit der entsprechenden API laden. Sie müssen auch auf Fensterereignisse hören, um zu entscheiden, wann die Anwendung beendet werden soll.
So funktioniert Electron mehr wie die Node.js Laufzeit und APIs sind niedriger Ebene können Sie auch Electron Zweck Web Test verwenden für wie PhantomJS,
2 - Bauen System
Um Um die Komplexität des Aufbaus des gesamten Chroms zu vermeiden, verwendet Electron libchromiumcontent, um auf die Inhalts-API von Chromium zuzugreifen. libchromiumcontent ist eine einzelne, gemeinsam genutzte Bibliothek, die das Chromium Content-Modul und alle zugehörigen Abhängigkeiten enthält. So brauchen Benutzer nicht eine leistungsfähige Maschine, um Atom-Shell zu bauen.
3 - Knoten Integration
In Node-Webkit erfordert die Knoten Integration in Web-Seiten Chromium zu arbeiten Patchen, während in Electron wählten wir eine andere Art und Weise zu libuv Schleife zu jeder Plattform der Nachrichtenschleife integriert zu vermeiden hacken Chromium, siehe den node_bindings Code für, wie das getan wurde.
4 - Multi-Kontext
Wenn Sie ein erfahrener Node-Webkit-Benutzer sind, sollten Sie mit dem Konzept der Knoten Kontext und Web-Kontext vertraut sein, waren diese Konzepte wegen erfunden, wie der Node-Webkit wurde implementiert.
Durch die Verwendung der Multi-Kontext-Funktion von Node stellt Electron keinen neuen JavaScript-Kontext in Webseiten .
** E ** lectron gegen ** N ** W.js (April'17). Stackoverflow Fragen [E: 2.630] (http:// Stackoverflow.com/questions/tagged/electron) vs [N: 269] (http:// Stackoverflow.com/questions/tagged/nw.js), Github ziehen Anfragen [E: 102] (https://github.com/electron/electron/pulse/monthly) gegen [N: 6] (https://github.com/nwjs/nw.js/pulse/monthly), Apps, die auf [Electron] (https://electron.atom.io/apps/) und [NW.js] (https://github.com/nwjs/nw.js/wiki/List-of-apps-and) gebaut wurden -companies-using-nw.js) und schließlich [Google Trends] (https://trends.google.com/trends/explore?q=nwjs,electron%20js) - Electron scheint die bessere Wahl zu sein. – wildloop