Electron 架构:主进程与渲染进程
了解 Electron 的多进程模型:主进程负责原生 API,渲染进程负责 React 用户界面
Electron 架构:主进程与渲染进程 是 CoddyKit 上的免费 React Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 React Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 React Academy 课程共包含 4 节课。
什么是 Electron?
Electron 是一个将 Chromium(用于网页渲染)与 Node.js(用于访问原生 API)结合起来的框架,让开发者能够使用熟悉的 Web 技术构建跨平台桌面应用。您的 React 应用运行在 Chromium 浏览器窗口中,而 Node.js 则让您能够访问操作系统功能。
主进程
主进程是 Electron 应用的入口——它管理应用生命周期、创建和控制窗口,并处理原生 OS 交互。它会生成渲染进程,并且可以完整访问 Node.js API 和底层操作系统。
渲染进程
每个 BrowserWindow 都会启动自己的渲染进程,该进程运行 Chromium 并执行您的 React 应用。每个窗口对应一个渲染进程,其行为很像普通浏览器标签页——它会渲染 HTML、CSS 和 JavaScript。
主进程的能力
由于主进程拥有完整的 Node.js 访问权限,它可以读写文件系统、创建原生菜单、管理系统托盘、启动子进程,并与硬件交互。出于安全原因,渲染进程默认无法使用这些能力。
渲染进程沙箱
当 contextIsolation 设置为 true 时(这是现代默认设置),渲染进程处于沙箱中,无法直接访问 Node.js API。此安全模型可以防止恶意网页内容访问您的文件系统或执行任意系统命令。
IPC:进程之间的桥梁
进程间通信(IPC)是一种让主进程和渲染进程交换消息的机制。主进程使用 ipcMain 监听消息并作出响应,而渲染进程使用 ipcRenderer 发送消息——所有通信都是异步且基于消息的。
预加载脚本
预加载脚本处于一个特殊的中间位置:它在渲染进程上下文中运行,但在页面内容加载前仍可访问 Node.js API。因此,它是沙箱化渲染进程与拥有特权的主进程之间的安全桥梁。
contextBridge:安全地暴露 API
contextBridge.exposeInMainWorld 允许预加载脚本有选择地向渲染进程暴露一个安全且经过精心筛选的 API。渲染进程可以调用这些已暴露的函数,而无需直接访问 Node.js 或 Electron 内部机制,从而维持严密的安全边界。
在 React 中访问已暴露的 API
一旦 contextBridge 以类似“api”的名称暴露了 API,您的 React 组件就可以通过 window.api.myFunction() 调用它。这感觉就像调用普通 JavaScript 函数一样,但在底层,它会通过 IPC 路由到主进程。
安全模型总结
当启用 contextIsolation 时,Electron 安全模型明确禁止渲染进程直接访问 Node.js。所有特权操作都必须经过预加载脚本和 contextBridge,从而确保即使渲染进程中发生 XSS 攻击,也无法访问文件系统。
进程通信流程
典型的交互流程如下:React 组件调用 window.api.readFile() → 预加载脚本调用 ipcRenderer.invoke() → 主进程中的 ipcMain.handle() 执行 fs.readFile() → 结果以 Promise 形式返回渲染进程。此架构让渲染进程保持整洁且安全。
contextBridge 的作用
在 Electron 中,contextBridge.exposeInMainWorld 的主要作用是什么?
课程回顾
Electron 将 Chromium 与 Node.js 结合起来:主进程管理应用生命周期并拥有完整 OS 访问权限,而渲染进程则在沙箱环境中运行您的 React 用户界面。预加载脚本与 contextBridge 构成安全桥梁,IPC 支持特权主进程与隔离的渲染进程之间进行安全通信。
常见问题解答
「Electron 架构:主进程与渲染进程」课时是免费的吗?
是的 — 「Electron 架构:主进程与渲染进程」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 React Academy 课程的其余内容,请升级到 CoddyKit PRO。 React Academy 课程共包含 4 节课。
「Electron 架构:主进程与渲染进程」这节课中我会学到什么?
了解 Electron 的多进程模型:主进程负责原生 API,渲染进程负责 React 用户界面 你通过在浏览器中直接运行的动手代码来练习 React Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 React Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 React Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。
「Electron 架构:主进程与渲染进程」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 React Academy 课中编写并运行代码吗?
能。每节 React Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- Electron 架构:主进程与渲染进程
- 使用 Electron 配置 React
- 进程间的 IPC 通信
- 桌面平台的打包与分发