如果你写过 React,页面上的事基本都能摆平;但只要需求变成“做个桌面客户端”,问题就来了:窗口怎么开、菜单怎么加、本地文件怎么读、主进程和渲染进程怎么说话、打包出来为什么在别人电脑上跑不起来。这门课处理的就是这段落差——它不教你 React 语法,也不讲 JavaScript 基础,而是把 React 项目放进 Electron 的壳里,再补上一块真实的云端存储需求。

先确认你缺的是哪一块

Electron 的坑很少在 API 本身,多在你对“两个进程”的心智模型上。渲染进程里能用 DOM、能跑 React,但它碰不到系统能力;主进程能开窗口、能读文件、能调原生模块,却没有界面。中间的桥怎么搭,是这门课最先要解决的事。

  • 知道 React 组件怎么写,但不知道一个 React 应用如何变成能双击打开的桌面程序;
  • 听说过主进程、渲染进程,说不清 remote 方式和 IPC 通信各自的适用场景与代价;
  • 能写网页里的上传,但换成客户端要传大文件、要显示进度、要处理失败重试时就没有把握;
  • 应用菜单、窗口行为这类“桌面味”的东西,完全没动过手。

以上中了两条以上,这门课的内容对你就是有效输入;如果只是想再学一遍 React 状态管理,那它会让你失望。

课程实际覆盖的三段内容

第一段:把 React 装进 Electron

从案例展示切入,先让你看到最终要做成什么样子,再回到工程结构本身。重点不是“跑起来 Hello World”,而是理解开发期的调试方式与构建产物的关系——很多人在这一步就开始混乱:本地明明好的,打包后就白屏。

第二段:进程通信,这是分水岭

进程间通信和 remote 方式的跨进程访问被单独拿出来讲,说明它是整门课的技术核心。你需要在这里建立判断:什么时候该由渲染进程发消息请主进程干活,什么时候用 remote 更省事但更危险。学完这一段,你应该能自己解释清楚“为什么 Electron 要把权限切开”,而不是照着示例抄一行 ipcRenderer。

第三段:接上七牛云存储

这是把练习变成可用产品的部分。客户端上传和网页上传的差别在于:文件来自本地磁盘、体积可能很大、用户会中途关窗口。配置、上传、进度反馈、异常处理这几件事串起来,才算真正走通一条业务链路。顺带还会碰到原生应用菜单的编码,桌面应用该有的样子在这里补齐。

看完应当能回答的问题

  • 一个 Electron + React 项目的目录里,哪些代码跑在主进程,哪些跑在渲染进程,构建时分别去了哪里?
  • 不用 remote 的前提下,渲染进程要读取本地文件,完整的一次请求—响应流程怎么写?
  • 把上传做到七牛云,凭证信息放在哪一层才不至于泄露在客户端代码里?
  • 应用菜单为什么必须在主进程构建,它能触发渲染进程里的哪些行为?
  • 开发环境正常、打包后异常,通常先排查哪几个环节?

这些问题如果现在答不上来,边看边把答案写下来,比看完再回头找笔记有用得多。

怎么用这份材料

建议分两次看:第一遍只跟主进程与渲染进程的边界,把通信那条线画在纸上;第二遍再跟着做云端存储和菜单部分,中途刻意把上传失败的路径走一遍,比如断网、传大文件、重复上传同一个文件。这类异常分支才是桌面客户端和课堂 Demo 的差距所在。

配套的演示和文档适合在动手卡住时回查,不必先通读一遍——这门课的价值在敲的过程里,不在目录里。

Electron+React+七牛云实战开发跨平台桌面应用

跨平台桌面应用实战教程

编辑点评

深入浅出Electron与React结合,实战七牛云存储,适合有桌面应用开发需求的学习者。

⭐ 编辑推荐

本课程将带你从零开始,学习使用Electron和React开发跨平台桌面应用,并实战七牛云存储。

课程亮点

• Electron+React实战
• 七牛云存储应用
• 跨平台桌面应用开发

课程目录

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开发桌面应用
学会使用七牛云存储
实现跨平台桌面应用开发

祝您学习愉快!

学有所成,前程似锦!