Electron 架构要点
一、一句话介绍
Electron 是一个使用 Web 技术(HTML、CSS、JavaScript)构建跨平台桌面应用的框架,通过集成 Chromium 和 Node.js 实现。
二、核心架构:多进程模型
1. 主进程(Main Process)
- 每个应用只有一个
- 负责:应用生命周期、窗口管理、系统 API 调用
- 入口文件:
main.js/main.ts - 完全访问 Node.js
2. 渲染进程(Renderer Process)
- 每个窗口对应一个
- 负责:显示 Web 页面
- 默认不能直接访问 Node.js(安全考虑)
3. 预加载脚本(Preload Script)
- 主进程和渲染进程的安全桥梁
- 执行时机:页面加载前
- 通过
contextBridge向渲染进程暴露有限 API
三、进程间通信(IPC)
- 主进程:
ipcMain接收消息 - 渲染进程:
ipcRenderer发送消息 - 预加载脚本:通过
contextBridge.exposeInMainWorld暴露 API
四、安全核心
- 禁用 nodeIntegration:防止渲染进程执行任意 Node.js 代码
- 启用 contextIsolation:隔离 Node.js 和 Web 环境
- 使用预加载脚本:控制暴露的 API
- 启用沙箱:限制渲染进程权限
五、适用场景
- ✅ 跨平台桌面应用
- ✅ 需要系统集成的应用
- ✅ 快速原型开发
- ❌ 对包体积敏感的应用
- ❌ 高性能图形应用
六、一句话总结
"Electron 采用多进程架构,主进程管理应用和窗口,渲染进程显示页面,通过预加载脚本进行安全通信,实现了 Web 技术开发桌面应用的能力。"