Electron-architectuur: main- en rendererprocessen
Begrijp het multiprocessmodel van Electron: het main process voor native API's en het renderer process voor de React-interface.
Electron-architectuur: main- en rendererprocessen is een gratis React Academy-les op CoddyKit. Dit is les 1 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject React Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus React Academy bevat in totaal 4 lessen.
Wat is Electron?
Electron is een raamwerk dat Chromium (voor webweergave) combineert met Node.js (voor toegang tot systeemeigen API's), zodat ontwikkelaars platformonafhankelijke desktoptoepassingen kunnen bouwen met vertrouwde webtechnologieën. Je React-toepassing draait in een Chromium-browservenster, terwijl Node.js je toegang geeft tot mogelijkheden van het besturingssysteem.
Het hoofdproces
Het hoofdproces is het toegangspunt van een Electron-toepassing — het beheert de levenscyclus van de toepassing, maakt vensters en bestuurt ze, en handelt interacties met het besturingssysteem af. Het start rendererprocessen en heeft volledige toegang tot Node.js-API's en het onderliggende besturingssysteem.
Het rendererproces
Elke BrowserWindow start een eigen rendererproces, waarin Chromium draait en je React-toepassing wordt uitgevoerd. Er is één rendererproces per venster en het gedraagt zich ongeveer als een gewone browsertab: het geeft HTML, CSS en JavaScript weer.
Mogelijkheden van het hoofdproces
Omdat het hoofdproces volledige toegang tot Node.js heeft, kan het het bestandssysteem lezen en beschrijven, systeemeigen menu's maken, het systeemvak beheren, onderliggende processen starten en met hardware communiceren. Om veiligheidsredenen zijn deze mogelijkheden standaard niet beschikbaar in het rendererproces.
Sandboxisolatie van het rendererproces
Wanneer contextIsolation is ingesteld op true (de moderne standaard), is het rendererproces geïsoleerd en heeft het geen directe toegang tot Node.js-API's. Dit beveiligingsmodel voorkomt dat schadelijke webinhoud toegang krijgt tot je bestandssysteem of willekeurige systeemopdrachten uitvoert.
IPC: De brug tussen processen
Interprocescommunicatie (IPC) is het mechanisme waarmee het hoofdproces en rendererprocessen berichten kunnen uitwisselen. Het hoofdproces gebruikt ipcMain om naar berichten te luisteren en erop te reageren, terwijl het rendererproces ipcRenderer gebruikt om ze te verzenden — alle communicatie verloopt asynchroon en op basis van berichten.
Het preloadscript
Het preloadscript neemt een bijzondere tussenpositie in: het draait in de context van het rendererproces, maar behoudt toegang tot Node.js-API's voordat de paginainhoud wordt geladen. Daardoor vormt het de veilige brug tussen het geïsoleerde rendererproces en het bevoorrechte hoofdproces.
contextBridge: Veilige API-blootstelling
Met contextBridge.exposeInMainWorld kan het preloadscript selectief een veilige, zorgvuldig samengestelde API aan het rendererproces beschikbaar stellen. Het rendererproces kan deze blootgestelde functies aanroepen zonder ooit directe toegang te krijgen tot Node.js of interne onderdelen van Electron, waardoor een sterke beveiligingsgrens behouden blijft.
Toegang tot blootgestelde API's vanuit React
Nadat contextBridge een API beschikbaar heeft gesteld onder een naam zoals "api", kunnen je React-componenten die aanroepen via window.api.myFunction(). Dit voelt net als het aanroepen van een gewone JavaScript-functie, maar achter de schermen loopt de aanroep via IPC naar het hoofdproces.
Samenvatting van het beveiligingsmodel
Het beveiligingsmodel van Electron verbiedt expliciet directe toegang tot Node.js in het rendererproces wanneer contextIsolation is ingeschakeld. Alle bevoorrechte bewerkingen moeten via het preloadscript en contextBridge verlopen, zodat zelfs een XSS-aanval in het rendererproces geen toegang tot het bestandssysteem kan krijgen.
Verloop van procescommunicatie
Een typische interactie verloopt als volgt: een React-component roept window.api.readFile() aan → preload roept ipcRenderer.invoke() aan → ipcMain.handle() in het hoofdproces voert fs.readFile() uit → het resultaat keert als een Promise terug naar het rendererproces. Deze architectuur houdt het rendererproces overzichtelijk en veilig.
Doel van contextBridge.exposeInMainWorld
Wat is het hoofddoel van contextBridge.exposeInMainWorld in Electron?
Samenvatting van de les
Electron combineert Chromium en Node.js: het hoofdproces beheert de levenscyclus van de app en heeft volledige toegang tot het besturingssysteem, terwijl rendererprocessen je React-gebruikersinterface in een geïsoleerde omgeving uitvoeren. Het preloadscript en contextBridge vormen de veilige brug, en IPC maakt veilige communicatie mogelijk tussen het bevoorrechte hoofdproces en het geïsoleerde rendererproces.
Leer React met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 88
- Lessen
- 324
Veelgestelde vragen
Is de les “Electron-architectuur: main- en rendererprocessen” gratis?
Ja — de volledige tekst van “Electron-architectuur: main- en rendererprocessen” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus React Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus React Academy bevat in totaal 4 lessen.
Wat leer ik in “Electron-architectuur: main- en rendererprocessen”?
Begrijp het multiprocessmodel van Electron: het main process voor native API's en het renderer process voor de React-interface. Je oefent met React Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met React Academy te beginnen?
Ervaring vooraf is niet nodig. React Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 4.
Hoe lang duurt de les “Electron-architectuur: main- en rendererprocessen”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over React Academy?
Ja. Elke les over React Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Electron-architectuur: main- en rendererprocessen
- React instellen met Electron
- IPC-communicatie tussen processen
- Pakketten en distributie voor desktopplatforms