前端: Electron 架构

4 阅读1分钟

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

四、安全核心

  1. 禁用 nodeIntegration:防止渲染进程执行任意 Node.js 代码
  2. 启用 contextIsolation:隔离 Node.js 和 Web 环境
  3. 使用预加载脚本:控制暴露的 API
  4. 启用沙箱:限制渲染进程权限

五、适用场景

  • ✅ 跨平台桌面应用
  • ✅ 需要系统集成的应用
  • ✅ 快速原型开发
  • ❌ 对包体积敏感的应用
  • ❌ 高性能图形应用

六、一句话总结

"Electron 采用多进程架构,主进程管理应用和窗口,渲染进程显示页面,通过预加载脚本进行安全通信,实现了 Web 技术开发桌面应用的能力。"