想学 Electron?这份「能跑的示例集」一篇搞懂

想学 Electron?这份「能跑的示例集」一篇搞懂

VS Code、钉钉、Slack、Figma 桌面版......这些你熟悉的软件,背后都有同一个名字:Electron 。用前端技术(HTML/CSS/JS)就能做桌面应用,是很多团队的选择。但官方文档知识点多、自己从零搭又容易踩坑,有没有一份「按主题拆好、每个都能直接跑」的示例? 有。本文就介绍这样一份示例仓库,并帮你把 Electron 的核心知识点串一遍,看完一篇,知道学什么、去哪看代码


一、Electron 是什么?这个仓库能帮你什么?

一句话: Electron 让你用写网页的技术(HTML/CSS/JavaScript)来开发桌面软件,一套代码可跑在 Windows、macOS、Linux 上。

这个仓库做什么: 把 Electron 常见能力拆成 23 个独立小项目 ,每个项目一个文件夹,里面是可运行代码 + 说明文档。你不需要从零搭环境,克隆下来进目录、装依赖、运行命令就能看到效果。适合:

  • 想学 Electron 的人:按主题边看边跑,比光看文档好懂;
  • 做桌面端开发的人:遇到「窗口、菜单、通知、IPC」等问题,可以对着对应示例改;
  • 面试前突击的人:仓库里还带 3 套 Electron 面试卷(含答案),可用来自查。

二、怎么跑起来?(3 步)

环境准备: 本机装好 Node.js(建议 18 及以上),示例在 Windows 11 下验证过,macOS / Linux 下大多也可直接运行。

运行任意一个示例:

  1. 克隆仓库;
  2. 进入想玩的案例目录(例如 ipcdarkmode);
  3. 在该目录下执行:npm installnpm run startnpm run start:1(具体看该目录的 readme)。

每个案例的详细命令和说明 都在对应目录的 readme.md 里,进去就能看到。


三、Electron 知识点串讲(对应仓库怎么用)

下面按「从入门到进阶」的顺序,把主要概念过一遍,并标出仓库里哪一类示例可以对照着看。不展开代码细节,只帮你建立地图。

1. 入门:第一个应用长什么样?

Electron 应用至少有两个「角色」:主进程 (负责创建窗口、系统 API)和渲染进程 (你看到的页面)。两者不能直接互相调函数,要通过 preload 脚本 安全地暴露接口,或用 IPC(进程间通信)传消息。

仓库对应: tutorial-first-app ------ 第一个应用、主进程 / 渲染进程 / preload / IPC 入门。


2. 进程与通信:页面和「后台」怎么配合?

  • IPC:渲染进程和主进程互相发消息(单向、双向、主进程主动推给页面等)。
  • MessagePort:更灵活的通道,适合「渲染进程直连」「流式回复」等场景。
  • Utility Process(效率进程):跑 CPU 重活或容易崩的逻辑,和主进程隔离,用 MessagePort 通信。
  • 多线程:在渲染进程里用 Web Worker,避免大量计算卡住界面。
  • 沙盒:渲染进程默认沙盒、安全配置,减少安全风险。

仓库对应: ipcmessage-portsefficiency-processmultithreadingsandbox


3. 窗口与 UI:桌面应用「长什么样」?

  • 暗色模式 :用系统主题或自己切换,和 CSS 的 prefers-color-scheme 配合。
  • 任务栏:Windows 上的 JumpList、缩略图工具栏、进度条、图标闪烁等。
  • 窗口定制:无边框、自定义标题栏、拖拽区域。
  • 进度条:在任务栏 / Dock 上显示进度(如下载、处理任务)。

仓库对应: darkmodewindows-taskbarwindow-customizationprogressbar


4. 系统与原生能力:和操作系统打交道

  • 菜单:应用菜单、右键菜单、托盘菜单。
  • 快捷键:绑定在菜单上的、全局的、窗口内自己监听的。
  • 系统通知:像微信/邮件那样在系统通知栏弹出,而不是只在页面里弹个提示。
  • 设备访问:例如蓝牙(Web Bluetooth API)。
  • 深度链接:自定义协议,从浏览器或别的应用点链接唤起你的应用。

仓库对应: menuskeyboardshortcutnotificationsDemobluetoothdeeplinks


5. 文件与文档、Web 与导航

  • 文件拖拽:把文件从应用拖到桌面或资源管理器。
  • 最近文档:系统「最近打开」列表的集成。
  • Web 嵌入:在窗口里嵌网页(iframe、webview、WebContentsView)。
  • 导航历史:窗口内前进/后退(goBack / goForward)。
  • 在线/离线:检测网络状态,做离线提示或缓存策略。

仓库对应: draganddroprecentdocumentsweb-embedsnavigationHistoryonlineofflineevents


6. 其他常用能力

  • 离屏渲染:在不可见的画布上渲染(例如生成图、PDF)。
  • 拼写检查:系统级拼写检查集成。

仓库对应: offscreenrenderingspellchecker


7. 学习与面试

仓库内带 paper 目录:3 套 Electron 面试卷,各 100 分,含答案与解析,适合考前自查。


四、案例目录一览(按需进目录看 readme 和代码)

下面表格里的目录名 ,在仓库里对应一个文件夹,点进去有 readme可运行代码 。不同子项目可能有不同启动命令(如 npm run start:1start:2),以该目录下的 readme 为准。

分类 序号 目录 说明
入门 1 tutorial-first-app 第一个应用(主进程、渲染进程、preload、IPC 入门)
窗口与 UI 2 darkmode 黑暗模式 / 主题切换
3 windows-taskbar Windows 任务栏(JumpList、缩略图、叠加图标、闪烁)
4 window-customization 自定义窗口(无边框、自定义标题栏、拖拽区域)
5 progressbar 任务栏/Dock 进度条
进程与通信 6 ipc 进程间通信(单向/双向、主→渲染)
7 message-ports 消息端口(MessageChannel、流式回复)
8 efficiency-process 效率进程(Utility Process、MessagePort)
9 multithreading 多线程(Web Workers)
10 sandbox 进程沙盒与安全配置
系统与原生 11 menus 菜单(应用菜单、上下文菜单、托盘)
12 keyboardshortcut 键盘快捷键(局部、全局、窗口内)
13 notificationsDemo 系统通知(主进程/渲染进程)
14 bluetooth 设备访问(如蓝牙)
15 deeplinks 深度链接(自定义协议、从链接唤起应用)
文件与文档 16 draganddrop 文件拖拽(拖出到桌面/资源管理器)
17 recentdocuments 最近文件(系统最近文档列表)
Web 与导航 18 web-embeds Web 嵌入(iframe、webview、WebContentsView)
19 navigationHistory 导航历史(前进/后退)
20 onlineofflineevents 在线/离线事件
其他 21 offscreenrendering 离屏渲染
22 spellchecker 拼写检查器
学习与面试 23 paper Electron 面试卷(3 套,含答案与解析)

五、去哪看代码?仓库在这里

以上所有示例的完整代码、运行命令和说明都在下面这个仓库里,每个案例独立可运行,按目录即可找到对应 readme 和代码。

仓库地址: [gitee.com/sharetoyouc...]

克隆后,进入任意目录执行 npm install,再按该目录 readme 的脚本运行即可。MIT 许可,欢迎 Star、Fork,或提 Issue / PR。


本文基于 Electron 官方文档与示例整理,旨在帮助初学者和开发者快速建立知识地图并找到可运行示例。

相关推荐
是Dream呀1 小时前
自动化打造信息影响力:用 Web Unlocker 和 n8n 打造你的自动化资讯系统
运维·前端·爬虫·自动化
Trae1ounG2 小时前
这是json
前端·javascript·vue.js
Dxy12393102162 小时前
Python 将 JSON 字符串转换为字典
前端·python·json
colicode2 小时前
语音提醒接口开发方案:日程安排与待办事项自动电话提醒的集成思路
前端·前端框架·语音识别
爱上妖精的尾巴2 小时前
8-8 WPS JS宏 正则表达式 字符组与任选
java·服务器·前端
山岚的运维笔记3 小时前
SQL Server笔记 -- 第34章:cross apply
服务器·前端·数据库·笔记·sql·microsoft·sqlserver
前端程序猿i3 小时前
第 8 篇:Markdown 渲染引擎 —— 从流式解析到安全输出
开发语言·前端·javascript·vue.js·安全
coding随想3 小时前
告别构建焦虑!用 Shoelace 打造零配置的现代 Web 应用
前端
css趣多多3 小时前
resize.js
前端·javascript·vue.js