跳到正文

Electron

中级网页App

Electron 是用 HTML、CSS 和 JavaScript 构建跨平台桌面应用的框架,内置 Chromium 和 Node.js。它让你复用网页开发技能,制作能访问本地文件、使用系统菜单的 Windows、macOS 和 Linux 应用。

你可能会说:「我想把现有网页做成电脑上能安装的软件,还能读取本地文件夹。」

读之前建议先了解

动手看看

打开文件网页界面等待打开预加载接口受控入口主进程本地文件
1

你点击桌面笔记应用的“打开文件”。按钮由 HTML、CSS 和 JavaScript 构建,运行在 Electron 内置的 Chromium 中。

要点

  1. 1

    用网页技术构建桌面界面

    你可以用 HTML、CSS 和 JavaScript 写界面,也可以继续用 React 或 Vue。因为应用内置 Chromium,用户不必另装浏览器,界面也不依赖用户默认浏览器的版本。

  2. 2

    主进程与页面各管一摊

    主进程负责创建窗口、接入系统能力,渲染进程负责展示界面和处理交互。比如做文档助手,页面显示文件列表,主进程处理文件读取,两边通过进程间通信交换请求和结果。

  3. 3

    文件访问通过受控桥梁

    我们通常通过预加载脚本向页面提供少量明确的能力,例如“选择文件并读取”,而不是开放整个 Node.js。主进程再检查请求参数,这样页面即使出现漏洞,也更难随意操作你的电脑。

  4. 4

    跨平台仍需分别验证

    因为随应用分发了浏览器引擎和运行时,安装包和内存开销通常比简单原生工具大。多数业务代码可以共用,但安装包、文件路径、系统菜单和权限行为仍要在各目标系统上验证。

容易混淆的地方

Electron 不是 React 的替代品:React 负责组织界面,Electron 提供桌面运行环境,两者可以一起用。它与 Tauri 都能用网页技术做桌面应用,但 Electron 自带 Chromium,Tauri 主要使用系统 WebView,运行环境和打包开销因此不同。

什么时候用

适合用

  • 你已有网页编辑器,想复用界面做桌面版,并接入本地文件和系统菜单。
  • 你要做本地文档 AI 助手,需要选择文件夹、读取资料并显示处理进度。
  • 团队熟悉 JavaScript,要开发覆盖多个桌面系统的内部工作台,能接受运行时开销。

不适合用

  • 产品只是在线查询和填写表单,浏览器已能满足需求,直接做网站更省维护成本。
  • 目标是手机 App 或微信小程序,考虑 Flutter、React Native 或小程序方案。
  • 你要做安装包极小、长期驻留的简单工具,可以优先评估原生开发或 Tauri。

练一练

你要把现有 React 文档整理网站做成桌面应用,让用户选择本地文件夹并整理其中的文件。下面哪种方案更合理?

让 AI 帮你做

请用 Electron 把现有 React 文档工具做成 Windows 和 macOS 桌面应用。用户可选择文件夹并读取文档;界面不直接访问 Node.js,通过预加载脚本暴露有限接口,主进程校验请求。请提供开发启动、打包步骤和两端验证清单。

接下来学什么