Electron 应用主要由以下几个核心组成部分构成:
-
主进程(Main Process):
- Electron 应用的入口点是主进程,通常是
main.js
文件。它负责管理应用的生命周期,包括创建窗口、处理系统事件和应用更新等。 - 主进程可以访问 Node.js 的全部 API,因此可以执行文件系统操作、访问网络、集成数据库等。
- 主进程创建渲染进程,并管理渲染进程的生命周期。
-
渲染进程(Renderer Process):
- 每个 Electron 窗口都有一个或多个渲染进程,通常对应于加载的网页。
- 渲染进程负责页面的渲染和用户交互,可以是多个网页或者 iframe。
- 默认情况下,渲染进程是隔离的,不能直接访问 Node.js API,以保证安全性。
-
预加载脚本(Preload Script):
preload.js
文件在渲染进程加载之前执行,用于向渲染进程注入全局对象和 Node.js 功能。- 它作为主进程和渲染进程之间的桥梁,通过
contextBridge
和 ipcRenderer
实现安全的通信。
-
窗口(Window):
- Electron 应用中的窗口是由
BrowserWindow
实例创建的,可以加载本地文件或者远程 URL。 - 窗口可以响应操作系统的事件,如最小化、最大化和关闭。
-
上下文隔离(Context Isolation):
- 为了提高安全性,Electron 推荐在
webPreferences
中启用上下文隔离。 - 启用后,渲染进程的 Node.js 环境和页面脚本被隔离开来,只能通过
preload.js
暴露的接口进行通信。
-
原生 UI 组件(Native UI Components):
- Electron 提供了一系列原生 UI 组件,如对话框、菜单和通知等,这些组件与操作系统的 UI 风格保持一致。
-
模块和依赖管理:
- Electron 应用可以使用 npm 或 yarn 来管理依赖,并且可以集成第三方 Node.js 模块。
-
应用菜单(Application Menu):
- Electron 允许开发者自定义应用菜单,包括操作系统菜单栏和上下文菜单。
-
通知(Notifications):
- Electron 应用可以发送桌面通知,与操作系统的通知系统集成。
-
自动更新(Auto Updater):
- Electron 应用可以集成自动更新功能,使用
electron-builder
或 electron-updater
等工具实现。
-
调试和日志记录:
- Electron 提供了调试工具和日志记录功能,方便开发者调试和监控应用状态。