如果你打算做一款能在 Windows 和 macOS 上同时运行的桌面软件,又不想为此再学一套原生开发技术,Electron 是一条现实路径。这门课把它和 React、七牛云放在一起讲,指向的是一个很常见的产品形态:带界面的桌面客户端,本地管文件、管任务,云端负责存储和分发。

它解决的是哪类工作场景

日常工作中需要桌面端而不是网页端的场景,通常有几个特征:要读写本地磁盘上的文件、要常驻系统托盘、要调用操作系统的菜单和快捷键、要在没有浏览器的环境里独立运行。比如内部的素材管理工具、批量处理文件的客户端、公司自用的数据同步助手。这些需求用网页做不了,用 C++ 或 Qt 做又太重,Electron 的价值就在这里。

这门课的具体落点,是把界面、本地能力和云存储串成一条完整的链路:React 负责界面结构和状态,Electron 负责窗口、菜单、本地文件与系统交互,七牛云负责把用户产生的文件传到云端并在需要时取回。学完不是会几个 API,而是能独立把这样一个小型客户端从空白项目搭到能打包给别人用。

课程实际覆盖的技术点

  • Electron 的主进程与渲染进程分工,以及两者之间怎么安全地传数据,而不是把逻辑全堆在一个进程里。
  • 通过 remote 之类的机制跨进程访问能力,理解它为什么方便、又为什么在真实项目里要谨慎使用。
  • 进程间通信的几种写法,这是 Electron 项目最容易写乱的地方,也是排查问题时最先要看的地方。
  • 原生应用菜单的编码实现,包括菜单项绑定、快捷键、以及和页面状态的联动。
  • 把生成的文件交给七牛云存储,涉及上传流程、凭证处理和下载回读,属于典型的「本地 + 云」组合。

可以看出,内容的重心不在 React 本身。界面部分只讲到够用,真正花笔墨的是进程模型、通信和桌面端特有的能力。如果你指望靠它补 React 基础,方向就偏了。

适合什么基础的人

比较合适的起点是:写过 React 组件,能看懂 hooks 和基本的组件通信;对 Node.js 有概念,知道 npm 装包和模块引用是怎么回事;用命令行跑过项目,不抗拒看报错。满足这三条,跟下来不会吃力。

反过来,如果 JavaScript 语法还不熟,或者没接触过前端工程化,建议先补一段再回来。Electron 的调试比纯网页麻烦,主进程和渲染进程的报错位置不一样,基础不牢时容易卡在环境问题上而不是知识点上。同样,完全没有云存储经验不影响学习,但涉及密钥管理、上传策略的部分需要多留一点注意力,这部分在生产环境里出错代价较高。

学之前值得想清楚的两件事

一是体积和性能。Electron 打包出来的应用动辄上百兆,内存占用也不低,这是它绕不开的代价。课程不会替你解决这个取舍,选型时自己要有判断:面向内部效率工具、面向需要快速迭代的产品,它合适;追求极致轻量的工具类软件,未必。

二是云存储的耦合。把七牛云写进客户端意味着你依赖一个具体的服务商,将来换存储要改的地方不少。课程按七牛云讲,但接入思路是通用的,学的时候不妨留意哪些是厂商特有的、哪些是可以抽象出去的。

这份资料适合当作一个完整的小项目来跟做,而不是零散地看视频。跟着走一遍,你会对桌面应用的构建、运行、打包和云对接各环节都有具体的手感,这是只看文档很难得到的。

课程目录

Electron+React+七牛云实战跨平台桌面应用资料.png [493.5 KB] 9-7 添加原生应用菜单编码(一) (1129)_().mp4
 [60.9 MB] 10-2 七牛云平台使用简介 (0442)_().mp4
 [23.1 MB] 2-7 使用 remote 实现跨进程访问 (0518)__().mp4
 [15.1 MB] 12-5 探究打包过程和生成文件内容 (0714)_().mp4
 [41.9 MB] 1-1 学习本课程的收获以及案例展示(内附彩蛋) (1808)__().mp4
 [55.4 MB] 2-5 进程间的通信 (0620)_().mp4
 [59.8 MB] 3-5 useEffect 需要清除的 Effect (0927)_().mp4
 [69.0 MB] 2-6 使用 IPC 进行通信 (0842)_().mp4
 [45.0 MB] 9-

10 添加设置窗口编码(一) (1512)_().mp4
 [78.9 MB] 9-2 导入文件对话框(二) (1831)_().mp4
 [98.2 MB] 9-3 添加上下文菜单(一) (0909)_().mp4
 [56.0 MB] 3-

10 Hook 规则和其他 Hook (0505)_().mp4
 [47.9 MB] 3-4 useEffect 不需要清除的 Effect (0550)_().mp4
 [51.0 MB] 2-3 主进程和渲染进程 (0704)_().mp4
 [38.5 MB] 2-1 配置 Electron 开发环境 (0711)__().mp4
 [31.9 MB] 7-6 添加新建文件流程逻辑 (1343)_().mp4
 [68.6 MB] 12-3 添加配置文件 (0741)_().mp4
 [40.2 MB] 11-5 自动同步单个文件至七牛云(一) (1015)_().mp4
 [50.9 MB] 3-3 useState Hook (1122)_().mp4
 [60.5 MB] 12-

10 自动更新第二部分 - 添加自动更新功能 (0727)_().mp4
 [38.3 MB] 7-4 添加数据处理行为(一) (1433)_().mp4
 [72.7 MB] 2-8 升级到 electron 7.0 以上的注意事项 (0514)_().mp4
 [28.8 MB] 5-5 使用 PropTypes 进行类型检查 (0728)_().mp4
 [48.5 MB] 8-7 添加持久化数据逻辑代码 (0650)_().mp4
 [36.2 MB] 8-8 由一个 Bug 引发的思考 (0834)_().mp4
 [45.1 MB] 6-4 选择 MarkDown 编辑器 (0613)_().mp4
 [38.5 MB] 4-1 全局需求 (0809)_().mp4
 [55.9 MB] react-hooks-master_().zip
 [143.6 KB] 11-6 自动同步单个文件至七牛云(二) (0956)_().mp4
 [51.2 MB] 5-8 第一个自定义 Hook - useKeyPress (0854)_().mp4
 [50.7 MB] 5-2 FileSearch 组件(一) (1553)_().mp4
 [102.9 MB] 6-5 引入 easyMDE 编辑器 (0702)_().mp4
 [34.9 MB] 9-9 设置窗口解决方案和流程分析 (0539)_().mp4
 [30.7 MB] 9-

11 添加设置窗口编码(二) (1203)_().mp4
 [64.8 MB] 9-8 添加原生应用菜单编码(二) (1037)_().mp4
 [55.3 MB] 7-2 分析应用数据流 (0522)_().mp4
 [30.6 MB] 6-3 TabList 组件代码(二) (1102)_().mp4
 [59.2 MB] 3-9 自定义Hook(二) (1319)_().mp4
 [70.1 MB] 9-4 添加上下文菜单第二部分 (1125)_().mp4
 [60.6 MB] 3-1 React 简介和缘起 (0715)_().mp4
 [38.3 MB] 4-5 文件结构和代码规范 (0754)_().mp4
 [42.4 MB] 10-9 实现文件下载方法 (1403)_().mp4
 [72.0 MB] 11-

10 完成全部文件同步到七牛云功能编码 (0956)_().mp4
 [50.4 MB] 12-4 调试整个pack流程 (1031)_().mp4
 [53.4 MB] 12-7 Electron 打包体积优化第一部分- 质的飞跃 (0521)_().mp4
 [29.1 MB] 10-4 云文件操作类编码(一) (1222)_().mp4
 [65.3 MB] 5-3 FileSearch 组件(二) (1159)_().mp4
 [64.8 MB] 10-1 对象存储平台简介 (0532)_().mp4
 [25.6 MB] 8-3 FS 模块使用 Promise 改造 (0924)_().mp4
 [48.7 MB] 12-2 为生产环境 build 代码 (1022)_().mp4
 [92.5 MB] 4-3 配置开发环境(一) (0814)_().mp4
 [62.1 MB] 11-

11 使用流程图和伪代码解决剩下需求 (0853)_().mp4
 [45.7 MB] 7-1 分析设计 State 结构 (0647)_().mp4
 [34.7 MB] 12-

11 自动更新 第三部分 - 本地调试自动更新功能 (0638)_().mp4
 [40.8 MB] 4-4 配置开发环境(二) (1048)_().mp4
 [56.1 MB] 6-2 TabList 组件代码(一) (1444)_().mp4
 [77.9 MB] 9-1 导入文件对话框(一) (0946)_().mp4
 [77.5 MB] 3-2 配置 React 开发环境..1 (0950)_().mp4
 [51.0 MB] 3-7 自定义 Hook(一) (0835)_().mp4
 [67.4 MB] electron-demo-master_().zip
 [32.4 KB] 10-6 获得下载链接 (1451)_().mp4
 [77.2 MB] 8-1 在 React 中使用 Node.js (0618)_().mp4
 [54.9 MB] 10-3 初始七牛 SDK (1300)_().mp4
 [67.8 MB] 7-7 Flatten State 介绍 (0506)_().mp4
 [28.0 MB] 10-8 stream 流的简单用法 (1009)_().mp4
 [64.5 MB] 12-6 生成安装包 (0907)_().mp4
 [49.6 MB] 5-1 为项目选择样式库 (0926)_().mp4
 [48.6 MB] 12-9 自动更新第一部分 - 自动发布 release (0936)_().mp4
 [49.8 MB] 11-1 在设置窗口添加七牛云参数(一) (1001)_().mp4
 [58.5 MB] 11-9 为应用添加 Loading 效果 (0759)_().mp4
 [45.9 MB] 11-4 动态修改菜单项 (0906)_().mp4
 [49.4 MB] 13-1 课程总结 (0752)__().mp4
 [10.9 MB] 12-8 Electron 打包体积优化第二部分-极限优化 (1004)_().mp4
 [54.5 MB] 4-2 将 UI 拆分成组件 (0647)_().mp4
 [35.0 MB] 7-8 修改 State 为 Flatten 结构编码 (1044)_().mp4
 [56.7 MB] 11-8 自动下载云文件至本地(二) (1153)_().mp4
 [60.0 MB] 9-5 添加上下文菜单最终实现 (1402)_().mp4
 [72.5 MB] 3-6 useEffect 可控 effect (1131)_().mp4
 [76.8 MB] 10-7 stream 流的概念 (0750)_().mp4
 [60.7 MB] 8-2 FS 模块初试牛刀 (0855)_().mp4
 [48.9 MB] 12-1 安装 Electron builder (0442)_().mp4
 [24.4 MB] 8-5 数据持久化解决方案 (0653)_().mp4
 [62.5 MB] cloud-doc-master_().zip
 [874.9 KB] 2-2 进程和线程 (0802)_().mp4
 [27.8 MB] 5-4 为项目选择图标库 (1227)_().mp4
 [91.2 MB] 6-1 TabList 需求和属性分析 (0541)_().mp4
 [38.6 MB] 3-8 HOC 的概念和缺点 (0528)_().mp4
 [46.2 MB] 2-4 创建 BrowserWindow (1309)_().mp4
 [73.5 MB] 7-5 添加数据处理行为(二) (1133)_().mp4
 [57.7 MB] 10-5 云文件操作类编码(二) (1116)_().mp4
 [58.7 MB] 8-4 在 App 中集成文件操作 (1315)_().mp4
 [69.0 MB] 8-6 将 Electron store 集成到 App 中 (1402)_().mp4
 [69.7 MB] 9-6 原生应用菜单简介 (0649)_().mp4
 [34.0 MB] 5-6 FileList 组件开发(一) (1441)_().mp4
 [102.0 MB] 11-3 添加云同步菜单 (0803)_().mp4
 [40.3 MB] 11-7 自动下载云文件至本地(一) (0848)_().mp4
 [46.3 MB] 5-9 左侧收尾工作 (1231)_().mp4
 [63.8 MB] 7-3 给 App 组件添加状态 (1130)_().mp4
 [56.6 MB] 5-7 FileList 组件开发(二) (1229)_().mp4
 [64.8 MB] 适合人群 前端开发者 桌面应用开发者 对跨平台应用感兴趣的学习者 学习收获 掌握Electron和React开发桌面应用 学会使用七牛云存储 实现跨平台桌面应用开发 祝您学习愉快! 学有所成,前程似锦!