0Pricing
React Academy · Урок

Архитектура Electron: основной процесс и процесс визуализации

Разберитесь в многопроцессной модели Electron: основной процесс отвечает за нативные API, а процесс визуализации — за интерфейс React

«Архитектура Electron: основной процесс и процесс визуализации» — бесплатный урок React Academy на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения React Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс React Academy содержит 4 уроков всего.

Что такое Electron

Electron — это фреймворк, объединяющий Chromium для отображения веб-содержимого с Node.js для доступа к системным API. Он позволяет разработчикам создавать кроссплатформенные настольные приложения с помощью привычных веб-технологий. Ваше приложение React работает внутри окна браузера Chromium, а Node.js предоставляет доступ к возможностям операционной системы.

Главный процесс

Главный процесс — это точка входа приложения Electron: он управляет жизненным циклом приложения, создаёт окна и управляет ими, а также обрабатывает взаимодействие с нативной OS. Он запускает процессы визуализации и получает полный доступ к API Node.js и базовой операционной системе.

Процесс визуализации

Каждый BrowserWindow запускает собственный процесс визуализации, в котором работает Chromium и выполняется ваше приложение React. Для каждого окна существует отдельный процесс визуализации, который во многом ведёт себя как обычная вкладка браузера: отображает HTML, CSS и JavaScript.

Возможности главного процесса

Поскольку главный процесс имеет полный доступ к Node.js, он может читать из файловой системы и записывать в неё, создавать нативные меню, управлять областью уведомлений, запускать дочерние процессы и взаимодействовать с оборудованием. По умолчанию эти возможности недоступны в процессе визуализации по соображениям безопасности.

Песочница процесса визуализации

Если для contextIsolation задано значение true (современное значение по умолчанию), процесс визуализации работает в песочнице и не может напрямую обращаться к API Node.js. Эта модель безопасности не позволяет вредоносному веб-содержимому получать доступ к файловой системе или выполнять произвольные системные команды.

IPC: мост между процессами

Межпроцессное взаимодействие (IPC) — это механизм, позволяющий главному процессу и процессу визуализации обмениваться сообщениями. Главный процесс использует ipcMain для прослушивания сообщений и ответа на них, а процесс визуализации использует ipcRenderer для их отправки. Всё взаимодействие происходит асинхронно и на основе сообщений.

Скрипт предварительной загрузки

Скрипт предварительной загрузки занимает особое промежуточное положение: он выполняется в контексте процесса визуализации, но сохраняет доступ к API Node.js до загрузки содержимого страницы. Благодаря этому он служит безопасным мостом между изолированным процессом визуализации и привилегированным главным процессом.

contextBridge: безопасное предоставление API

contextBridge.exposeInMainWorld позволяет скрипту предварительной загрузки выборочно предоставлять процессу визуализации безопасный, тщательно отобранный API. Процесс визуализации может вызывать эти предоставленные функции, не получая прямого доступа к внутренним механизмам Node.js или Electron, что сохраняет надёжную границу безопасности.

Доступ к предоставленным API из React

После того как contextBridge предоставил API под именем вроде "api", компоненты React могут обращаться к нему через window.api.myFunction(). Это выглядит как обычный вызов функции JavaScript, но внутри вызов проходит через IPC к главному процессу.

Кратко о модели безопасности

Модель безопасности Electron явно запрещает прямой доступ к Node.js из процесса визуализации, если включён contextIsolation. Все привилегированные операции должны проходить через скрипт предварительной загрузки и contextBridge. Благодаря этому даже при XSS-атаке в процессе визуализации злоумышленник не сможет получить доступ к файловой системе.

Поток взаимодействия между процессами

Типичное взаимодействие выглядит так: компонент React вызывает window.api.readFile() → скрипт предварительной загрузки вызывает ipcRenderer.invoke() → главный процесс выполняет fs.readFile() через ipcMain.handle() → результат возвращается в процесс визуализации в виде обещания. Такая архитектура сохраняет процесс визуализации чистым и безопасным.

Назначение contextBridge

Каково основное назначение contextBridge.exposeInMainWorld в Electron?

Итоги урока

Electron объединяет Chromium и Node.js: главный процесс управляет жизненным циклом приложения и имеет полный доступ к OS, а процессы визуализации запускают ваш интерфейс React в изолированной песочнице. Скрипт предварительной загрузки и contextBridge образуют безопасный мост, а IPC обеспечивает безопасное взаимодействие между привилегированным главным процессом и изолированным процессом визуализации.

Часто задаваемые вопросы

Урок «Архитектура Electron: основной процесс и процесс визуализации» бесплатный?

Да — полный текст урока «Архитектура Electron: основной процесс и процесс визуализации» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс React Academy, подпишись на CoddyKit PRO. Курс React Academy содержит 4 уроков всего.

Чему я научусь в уроке «Архитектура Electron: основной процесс и процесс визуализации»?

Разберитесь в многопроцессной модели Electron: основной процесс отвечает за нативные API, а процесс визуализации — за интерфейс React Ты практикуешь React Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать React Academy?

Предыдущий опыт не требуется. React Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.

Сколько времени занимает урок «Архитектура Electron: основной процесс и процесс визуализации»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке React Academy?

Да. Каждый урок React Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Архитектура Electron: основной процесс и процесс визуализации
  2. Настройка React с Electron
  3. Связь между процессами через IPC
  4. Сборка и распространение для настольных платформ
← Назад к React Academy