0Pricing
React Academy · Lekcja

Architektura Electron: proces główny i proces renderera

Poznają Państwo wieloprocesowy model Electron: proces główny obsługuje natywne API, a proces renderera interfejs React.

Architektura Electron: proces główny i proces renderera to bezpłatna lekcja React Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej React Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs React Academy zawiera 4 lekcji w sumie.

Czym jest Electron

Electron to framework łączący Chromium (do renderowania stron internetowych) z Node.js (do dostępu do natywnych API), który umożliwia programistom tworzenie wieloplatformowych aplikacji desktopowych przy użyciu znanych technologii webowych. Aplikacja React działa w oknie przeglądarki Chromium, a Node.js zapewnia dostęp do funkcji systemu operacyjnego.

Proces główny

Proces główny jest punktem wejścia aplikacji Electron — zarządza cyklem życia aplikacji, tworzy i kontroluje okna oraz obsługuje interakcje z natywnym systemem operacyjnym. Uruchamia procesy renderera i ma pełny dostęp do API Node.js oraz bazowego systemu operacyjnego.

Proces renderera

Każdy BrowserWindow uruchamia własny proces renderera, który uruchamia Chromium i wykonuje aplikację React. Na każde okno przypada jeden proces renderera, który zachowuje się podobnie do zwykłej karty przeglądarki — renderuje HTML, CSS i JavaScript.

Możliwości procesu głównego

Ponieważ proces główny ma pełny dostęp do Node.js, może odczytywać i zapisywać system plików, tworzyć natywne menu, zarządzać zasobnikiem systemowym, uruchamiać procesy potomne oraz współpracować ze sprzętem. Ze względów bezpieczeństwa możliwości te są domyślnie niedostępne w procesie renderera.

Sandboxowanie procesu renderera

Gdy contextIsolation ma wartość true (co jest obecnie ustawieniem domyślnym), proces renderera działa w sandboxie i nie może bezpośrednio uzyskiwać dostępu do API Node.js. Ten model bezpieczeństwa chroni przed uzyskaniem przez złośliwe treści internetowe dostępu do systemu plików lub możliwością wykonywania dowolnych poleceń systemowych.

IPC: most między procesami

Komunikacja międzyprocesowa (IPC) to mechanizm umożliwiający wymianę komunikatów między procesem głównym a procesami rendererów. Proces główny używa ipcMain do nasłuchiwania komunikatów i odpowiadania na nie, natomiast renderer używa ipcRenderer do ich wysyłania — cała komunikacja jest asynchroniczna i oparta na komunikatach.

Skrypt preload

Skrypt preload zajmuje szczególne miejsce pośrednie: działa w kontekście procesu renderera, ale zachowuje dostęp do API Node.js przed załadowaniem zawartości strony. Dzięki temu stanowi bezpieczny most między izolowanym rendererem a uprzywilejowanym procesem głównym.

contextBridge: bezpieczne udostępnianie API

contextBridge.exposeInMainWorld umożliwia skryptowi preload selektywne udostępnienie rendererowi bezpiecznego, starannie dobranego API. Renderer może wywoływać te udostępnione funkcje bez uzyskiwania bezpośredniego dostępu do elementów wewnętrznych Node.js ani Electron, co pozwala zachować wyraźną granicę bezpieczeństwa.

Dostęp do udostępnionych API w React

Gdy contextBridge udostępni API pod nazwą taką jak "api", komponenty React mogą wywoływać je za pomocą window.api.myFunction(). Przypomina to wywoływanie zwykłej funkcji JavaScript, ale w tle żądanie jest przekazywane przez IPC do procesu głównego.

Podsumowanie modelu bezpieczeństwa

Model bezpieczeństwa Electron wyraźnie zabrania bezpośredniego dostępu do Node.js w rendererze, gdy włączono contextIsolation. Wszystkie operacje wymagające uprawnień muszą przechodzić przez skrypt preload i contextBridge, dzięki czemu nawet w przypadku ataku XSS w rendererze nie można uzyskać dostępu do systemu plików.

Przepływ komunikacji między procesami

Typowa interakcja przebiega następująco: komponent React wywołuje window.api.readFile() → preload wywołuje ipcRenderer.invoke() → ipcMain.handle() w procesie głównym wykonuje fs.readFile() → wynik wraca jako Promise do renderera. Taka architektura pozwala zachować czysty i bezpieczny renderer.

Cel contextBridge

Jaki jest główny cel contextBridge.exposeInMainWorld w Electron?

Podsumowanie lekcji

Electron łączy Chromium i Node.js: proces główny zarządza cyklem życia aplikacji i ma pełny dostęp do systemu operacyjnego, natomiast procesy rendererów uruchamiają interfejs React w środowisku sandbox. Skrypt preload i contextBridge tworzą bezpieczny most, a IPC umożliwia bezpieczną komunikację między uprzywilejowanym procesem głównym a odizolowanym rendererem.

Często zadawane pytania

Czy lekcja „Architektura Electron: proces główny i proces renderera” jest bezpłatna?

Tak — pełny tekst „Architektura Electron: proces główny i proces renderera” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu React Academy, przejdź na CoddyKit PRO. Kurs React Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Architektura Electron: proces główny i proces renderera”?

Poznają Państwo wieloprocesowy model Electron: proces główny obsługuje natywne API, a proces renderera interfejs React. Ćwiczysz React Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć React Academy?

Nie wymagamy żadnego doświadczenia. React Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „Architektura Electron: proces główny i proces renderera”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji React Academy?

Tak. Każda lekcja React Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Architektura Electron: proces główny i proces renderera
  2. Konfiguracja Reacta z Electron
  3. Komunikacja IPC między procesami
  4. Pakowanie i dystrybucja na platformy desktopowe
← Powrót do React Academy