Electron-Architektur: Main- und Renderer-Prozesse
Verstehen Sie das Multiprozessmodell von Electron: Der Main-Prozess stellt native APIs bereit, der Renderer-Prozess die React-Oberfläche.
Electron-Architektur: Main- und Renderer-Prozesse ist eine kostenlose React Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des React Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der React Academy-Kurs umfasst insgesamt 4 Lektionen.
Was ist Electron?
Electron ist ein Framework, das Chromium (für Web-Rendering) mit Node.js (für den Zugriff auf native APIs) kombiniert und es Entwicklern ermöglicht, plattformübergreifende Desktopanwendungen mit vertrauten Webtechnologien zu erstellen. Ihre React-App läuft in einem Chromium-Browserfenster, während Node.js Ihnen Zugriff auf Betriebssystemfunktionen gibt.
Der Hauptprozess
Der Hauptprozess ist der Einstiegspunkt einer Electron-Anwendung – er verwaltet den Lebenszyklus der Anwendung, erstellt und steuert Fenster und verarbeitet Interaktionen mit dem nativen Betriebssystem. Er startet Renderer-Prozesse und hat vollständigen Zugriff auf Node.js-APIs sowie das zugrunde liegende Betriebssystem.
Der Renderer-Prozess
Jedes BrowserWindow erzeugt einen eigenen Renderer-Prozess, in dem Chromium ausgeführt und Ihre React-Anwendung ausgeführt wird. Pro Fenster gibt es einen Renderer-Prozess, der sich ähnlich wie ein gewöhnlicher Browser-Tab verhält – er rendert HTML, CSS und JavaScript.
Funktionen des Hauptprozesses
Da der Hauptprozess vollständigen Zugriff auf Node.js hat, kann er das Dateisystem lesen und schreiben, native Menüs erstellen, die Systemleiste verwalten, Kindprozesse starten und mit Hardware interagieren. Aus Sicherheitsgründen sind diese Funktionen im Renderer standardmäßig nicht verfügbar.
Sandboxing des Renderer-Prozesses
Wenn contextIsolation auf true gesetzt ist (die moderne Standardeinstellung), ist der Renderer-Prozess in einer Sandbox und kann nicht direkt auf Node.js-APIs zugreifen. Dieses Sicherheitsmodell verhindert, dass schädlicher Webinhalt auf Ihr Dateisystem zugreift oder beliebige Systembefehle ausführt.
IPC: Die Brücke zwischen den Prozessen
Inter-Process Communication (IPC) ist der Mechanismus, über den der Hauptprozess und die Renderer-Prozesse Nachrichten austauschen können. Der Hauptprozess verwendet ipcMain, um auf Nachrichten zu warten und darauf zu antworten, während der Renderer ipcRenderer zum Senden verwendet – die gesamte Kommunikation ist asynchron und nachrichtenbasiert.
Das Preload-Skript
Das Preload-Skript nimmt eine besondere Zwischenposition ein: Es läuft im Kontext des Renderer-Prozesses, behält aber vor dem Laden des Seiteninhalts den Zugriff auf Node.js-APIs. Dadurch ist es die sichere Brücke zwischen dem isolierten Renderer und dem privilegierten Hauptprozess.
contextBridge: Sichere API-Freigabe
contextBridge.exposeInMainWorld ermöglicht es dem Preload-Skript, dem Renderer gezielt eine sichere, sorgfältig ausgewählte API bereitzustellen. Der Renderer kann diese freigegebenen Funktionen aufrufen, ohne direkten Zugriff auf Node.js oder Electron-Interna zu erhalten, wodurch eine klare Sicherheitsgrenze erhalten bleibt.
Von React aus auf freigegebene APIs zugreifen
Sobald contextBridge eine API unter einem Namen wie "api" freigegeben hat, können Ihre React-Komponenten sie über window.api.myFunction() aufrufen. Das fühlt sich wie der Aufruf einer gewöhnlichen JavaScript-Funktion an, intern wird der Aufruf jedoch über IPC an den Hauptprozess weitergeleitet.
Zusammenfassung des Sicherheitsmodells
Das Electron-Sicherheitsmodell untersagt den direkten Node.js-Zugriff im Renderer ausdrücklich, wenn contextIsolation aktiviert ist. Alle privilegierten Operationen müssen über das Preload-Skript und contextBridge ausgeführt werden. Dadurch kann selbst ein XSS-Angriff im Renderer nicht auf das Dateisystem zugreifen.
Ablauf der Prozesskommunikation
Eine typische Interaktion läuft folgendermaßen ab: Eine React-Komponente ruft window.api.readFile() auf → das Preload-Skript ruft ipcRenderer.invoke() auf → ipcMain.handle() im Hauptprozess führt fs.readFile() aus → das Ergebnis wird als Promise an den Renderer zurückgegeben. Diese Architektur hält den Renderer übersichtlich und sicher.
Zweck von contextBridge
Was ist der Hauptzweck von contextBridge.exposeInMainWorld in Electron?
Zusammenfassung der Lektion
Electron kombiniert Chromium und Node.js: Der Hauptprozess verwaltet den Lebenszyklus der Anwendung und hat vollständigen Betriebssystemzugriff, während Renderer-Prozesse Ihre React-Oberfläche in einer Sandbox ausführen. Das Preload-Skript und contextBridge bilden die sichere Brücke, und IPC ermöglicht eine sichere Kommunikation zwischen dem privilegierten Hauptprozess und dem isolierten Renderer.
Häufig gestellte Fragen
Ist die Lektion „Electron-Architektur: Main- und Renderer-Prozesse“ kostenlos?
Ja — der vollständige Text von „Electron-Architektur: Main- und Renderer-Prozesse“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des React Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der React Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Electron-Architektur: Main- und Renderer-Prozesse“?
Verstehen Sie das Multiprozessmodell von Electron: Der Main-Prozess stellt native APIs bereit, der Renderer-Prozess die React-Oberfläche. Du übst React Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um React Academy zu starten?
Keine Vorkenntnisse erforderlich. React Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.
Wie lange dauert die Lektion „Electron-Architektur: Main- und Renderer-Prozesse“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser React Academy-Lektion Code schreiben und ausführen?
Ja. Jede React Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Electron-Architektur: Main- und Renderer-Prozesse
- React mit Electron einrichten
- IPC-Kommunikation zwischen Prozessen
- Paketierung und Distribution für Desktop-Plattformen