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

  [复制链接]
查看4767 | 回复12 | 2019-12-11 09:42:21 | 显示全部楼层 |阅读模式
QQ截图20191211093728.png   T; y, o) n) Q# W- A3 ~; l

: j0 G2 K; T( N" l' D〖课程介绍〗; _3 D/ g" b: L- |7 H5 ]7 \) g% H
目前市场上对 Electron 的呼声很高,它几乎是 Web 开发人员开发桌面客户端的唯一途径,很多大厂都使用 Electron 开发自己的原生应用。Electron 天生适配任何前端开发框架,我们结合 React Hooks 这个炙手可热的新特性进行教学,同时因为 Electron 也可以使用 Node.js 的开发环境,所以我们同时使用七牛云和很多 Node 原生模块进行开发,来完成一个非常有吸引力的云同步 Markdown 文档管理应用。+ P. W: e$ d$ S/ D0 L: L0 v
7 Y! v+ n8 V% i0 w7 W! X
〖课程目录〗( ~/ x# y/ y$ B) N
第1章 进入 Electron 的世界9 k8 V$ s) X! q; S
介绍了整个课程的背景知识,项目简介,学习流程,可以掌握的知识点,以及学习方法和前置知识。
# g* X3 d8 J1 G% `& j7 ^1-1 学习本课程的收获以及案例展示(内附彩蛋) 试看* b: |* h3 \/ n  ~3 C3 R4 t0 r4 t
. ?7 g3 L0 O% B9 q1 Q& ]
第2章 我们的第一个应用, O( `* p3 Y2 P! {$ N. m
本章讲述了 Electron 的基础用法,包括搭建 Electron 开发环境、进程和线程的知识、BrowserWindow 模块、跨进程访问等内容。  r: p% k: V4 ?
2-1 配置 Electron 开发环境 试看
& q& b# j, a( |) I; S* [2-2 进程和线程
+ v9 U1 b3 \  S6 h& n  g4 V2-3 主进程和渲染进程
) N! s5 B4 ^; ~/ N  j( G6 H$ [3 Z4 u2-4 创建 BrowserWindow
- h; e2 z5 y2 `  ~" W2-5 进程间的通信
% y0 x3 s; u/ B, R. r' c2 L2-6 使用 IPC 进行通信% Z% j* k2 w0 ?
2-7 使用 remote 实现跨进程访问
$ R' n. H2 y# A+ s, g2-8 升级到 electron 7.0 以上的注意事项 ' u; O# R# D$ S

0 s" D) b2 p3 Z# Z9 Y第3章 神奇的 React
7 R% @4 U) t; n2 Y本章回顾了 React 的基础知识,从而引出了全新的 React Hooks,详细讲解了 useState、useEffect、自定义Hook 等内容。
5 W& e7 L4 ]5 @1 M7 E, x; h2 J3-1 React 简介和缘起( O. D# z7 J$ h; R* T) H9 }
3-2 配置 React 开发环境..1# N9 c, V/ C8 o. G4 h, e2 [
3-3 useState Hook
( m! Y5 `; U5 G5 d2 B  ]. y( ?3-4 useEffect 不需要清除的 Effect
" e! X- [  |" ^* H, E. p7 l, P/ S% Z3-5 useEffect 需要清除的 Effect$ X" H3 f* |0 f
3-6 useEffect 可控 effect. G, r, U* l0 y8 W5 e5 }  d# {
3-7 自定义 Hook(一)2 K7 u" \  r' j- Y( X
3-8 HOC 的概念和缺点, j; F8 K& t# \( Y9 D- U
3-9 自定义Hook(二)2 V  u) f4 u8 R0 U* p( N6 q
3-10 Hook 规则和其他 Hook
! }: n+ c0 R; b" F" M1 g5 u/ }* T
第4章 双剑合璧与庖丁解牛- N) r$ w" [. t; {: w
本章分析了整个应用的需求,将整个应用分割成组件,然后打造一个 适配 Electron 和 React 的开发环境
4 |  J1 K) j1 O6 t" D/ a; p& ]4-1 全局需求 试看1 O" q6 x: G* A7 b! t4 R# L
4-2 将 UI 拆分成组件
/ z/ Y* l6 R( @* o' P2 w2 p4-3 配置开发环境(一)
1 _; E2 @, H0 ]7 M7 w1 @: |4-4 配置开发环境(二)3 n9 q& n4 X1 W  _/ _! q
4-5 文件结构和代码规范) ~1 j3 K1 q2 K& [: `0 q/ ]" a
# s3 G# J  F7 }
第5章 左侧面板开发
  c. N  {  x- a1 ~/ p) C- L: n* x本章开始分别开发左侧面板的各个 React 组件,同时在开发过程中选用样式库、图标库,重构公共自定义 Hook。& @' V# q0 \% o8 Y& j$ c) v
5-1 为项目选择样式库% a; c4 C1 t; M* g) E
5-2 FileSearch 组件(一)
, a/ _# K- P8 Y$ R& ^5-3 FileSearch 组件(二)
7 C/ G: u9 e; j4 t5 L5-4 为项目选择图标库/ S  \( I( l$ C
5-5 使用 PropTypes 进行类型检查1 r$ w, t1 U( U8 A2 t1 X
5-6 FileList 组件开发(一). d5 T+ B; \2 O& G8 U9 F: A
5-7 FileList 组件开发(二); e$ I: t- f& Y$ k
5-8 第一个自定义 Hook - useKeyPress  }, a! h: K  O& p7 b9 y
5-9 左侧收尾工作
. E, K/ V  Q8 Z" V9 [
; [' t1 |6 |+ e$ y7 i+ _; m3 Z第6章 右侧面板开发
- e  V2 ~* K  Y# D本章开发了应用右侧的 TabList 和编辑器部分,同时在整个过程中穿插了如何选取一个好用的开源库的思路。
" ]2 N4 R* ?+ f( p& p6-1 TabList 需求和属性分析
" R. J$ R6 Y$ F" \6 v6-2 TabList 组件代码(一)
8 F7 T1 m  i9 Q/ k6-3 TabList 组件代码(二)* t8 X) _- u7 Z
6-4 选择 MarkDown 编辑器
) W. h9 }4 p( [3 {( c# p* I) S2 v6-5 引入 easyMDE 编辑器
! b  T! f2 H' v% E4 K+ o$ J% z9 E# O7 R) A9 r' r# f
第7章 功能结合
0 c9 `8 @, Z* ^( U: y本章遵循 React 哲学的最后步骤,从分析应用 state 结构入手,从上至下的给应用添加状态和逻辑处理,然后提出了 flatten state 的概念, 最后用这个概念进化了整个应用的状态。
+ u2 I8 R6 @5 k, w' @7-1 分析设计 State 结构+ Y* w3 k9 D6 f6 b  b( k7 g
7-2 分析应用数据流, q, ]; h$ [5 H7 V; u1 A( Q
7-3 给 App 组件添加状态
2 \6 g2 P# N" Q7-4 添加数据处理行为(一)/ L6 f* f& o2 C. ]0 d
7-5 添加数据处理行为(二)
$ Z) p" @, j! S7-6 添加新建文件流程逻辑% j9 O: y' b. ^9 R0 x
7-7 Flatten State 介绍
8 _0 @. m3 X" E( i& i7-8 修改 State 为 Flatten 结构编码5 s. e* v& k  u" r6 @- _  P

/ Z- _! L8 p$ e+ x5 C第8章 持久化保存数据
, P6 z0 \6 Z, h/ {本章开始进入 Node.js 的世界,使用 FS 模块完成文件的增删改,同时还使用 Electron store 完成文件索引的持久化保存。
& T5 _) H5 J. a- K# E0 `; ]8-1 在 React 中使用 Node.js. l( N1 u! J# S6 q- [% b+ I
8-2 FS 模块初试牛刀2 h0 e" b$ g6 [/ S
8-3 FS 模块使用 Promise 改造* Y' s7 s" t1 B9 A
8-4 在 App 中集成文件操作
; A- j" Y5 R$ q8-5 数据持久化解决方案
, h; ]4 C& G/ O8-6 将 Electron store 集成到 App 中
+ P% ~& w" x0 _$ W: O8-7 添加持久化数据逻辑代码+ C+ _$ F& i* Z( W6 d: o
8-8 由一个 Bug 引发的思考: ^- P  y. @# o5 N& _( A
6 S, C' n3 O: X! D4 Y
第9章 Electron 锦上添花. C$ e% g# n- b- k
本章使用 Electron 提供的模块 - Dialog、Menu、BrowserWindow 等模块进一步进化应用。在这之中,还穿插了 Node.js、DOM 遍历以及操作等一系列知识。$ L( o, R& `# f( U4 j/ l
9-1 导入文件对话框(一)1 D3 [$ V9 q$ A3 Y  ~3 q. f
9-2 导入文件对话框(二)4 i5 a" k7 S9 [
9-3 添加上下文菜单(一)& e, {: W' ]( b; j
9-4 添加上下文菜单第二部分
0 y* k; V) U& s2 n9 {$ q9-5 添加上下文菜单最终实现" {' W2 ?6 @0 E
9-6 原生应用菜单简介1 U9 G. R/ @/ Z$ H) T
9-7 添加原生应用菜单编码(一): i5 E/ W* X) u& t4 @
9-8 添加原生应用菜单编码(二)
0 m! Q& |% @4 }7 }* K4 o/ n9-9 设置窗口解决方案和流程分析
. ?4 o' H* z2 m) f/ [9-10 添加设置窗口编码(一)
+ G$ X$ w" {2 o2 H# b8 _9-11 添加设置窗口编码(二), p* C. K5 P( e! A! v4 W
/ u# f& O6 d. B6 Y" m, L5 q' T
第10章 认识七牛云平台6 a! o1 e! a# i
本章从对象存储云平台简介开始,引出七牛云使用的流程,以及七牛云 SDK 的下载。然后使用 SDK 写一些小 Demo,最后抽象到一个云文件操作类。
9 O/ T) ]) D% @' c- _5 ^- E10-1 对象存储平台简介
! q$ T3 A+ I3 F& ]( p/ k10-2 七牛云平台使用简介
! K) j, G% w. U% E) H' Q- `5 j( x10-3 初始七牛 SDK, Y3 C* ]. M2 x: ?
10-4 云文件操作类编码(一)) |1 I# y& ]7 d
10-5 云文件操作类编码(二)( }2 c- l, p( m; Q
10-6 获得下载链接
: g$ W4 m4 \" G! m( p+ t/ G10-7 stream 流的概念: q5 q0 C  A& d/ ~  z
10-8 stream 流的简单用法
8 J" D' k2 F  {10-9 实现文件下载方法4 F2 v2 }+ d0 I3 m+ @2 P
( }' A) q5 D/ V3 Z6 `: @, K# ~
第11章 使用 SDK 同步到七牛云
* m8 F- r- H" P2 [9 p# c" e本章使用上一章完成的云文件操作类将云文件同步功能添加到应用当中。
+ R- B0 V5 A' K+ H$ l* a& {; ^11-1 在设置窗口添加七牛云参数(一)8 K- f* u7 T1 u" z2 v7 }
11-2 在设置窗口添加七牛云参数(二)
# i8 H; C1 H$ _( E5 q2 _11-3 添加云同步菜单  V4 N4 ^( L0 ~
11-4 动态修改菜单项
  ]5 [5 ?5 U; Y! j( n$ y  |; Z11-5 自动同步单个文件至七牛云(一)
5 F8 A7 k3 D# X* J$ q4 `11-6 自动同步单个文件至七牛云(二)$ k. ?- C8 s2 r" \' T' j9 R, N! {
11-7 自动下载云文件至本地(一)
* r0 ]; j0 p! X/ o6 Y+ B11-8 自动下载云文件至本地(二)3 x( ?: ?4 h2 X, n1 s% f" E
11-9 为应用添加 Loading 效果, g1 c$ s- H( |/ f, f) s
11-10 完成全部文件同步到七牛云功能编码3 z/ o, c% `9 t/ O1 ~, P
11-11 使用流程图和伪代码解决剩下需求: E6 o8 o; H: [# Y" f, L
8 d' ]8 E4 u2 u- Y% x$ ]# f# ~
第12章 应用打包与分发$ }" O- X# ?$ T1 d# m3 C- M
本章主要以 MacOS 和 Windows 系统为例,讲解如何通过 Electron Builder 打包 Electron 应用程序。
: }2 j; P, C3 b12-1 安装 Electron builder7 i: k: m$ X/ P3 s( j2 L7 c9 l4 w
12-2 为生产环境 build 代码
! Y1 `0 V4 `4 h% S! R/ D12-3 添加配置文件
. p$ ~% Q8 w% \' A2 [12-4 调试整个pack流程* q4 ?, V  {: w, A' j2 d
12-5 探究打包过程和生成文件内容
" A. j5 K% ]3 t+ F, u12-6 生成安装包' t" G) u' G) d% C' L5 F0 }
12-7 Electron 打包体积优化第一部分- 质的飞跃
* B  V2 Z3 N, S- n8 H12-8 Electron 打包体积优化第二部分-极限优化
& n$ N2 t4 m+ F- h7 h12-9 自动更新第一部分 - 自动发布 release
* g1 f7 d8 Q1 D( A' L12-10 自动更新第二部分 - 添加自动更新功能5 e6 L; ]; B6 F7 B$ H; u& G& D, B
12-11 自动更新 第三部分 - 本地调试自动更新功能% w1 z9 M( C+ g0 s7 q; j
$ X4 m: n+ k5 W6 ~! S  }/ I
第13章 课程总结
% c( J* ~. q* D9 n本课程的回顾与总结。
1 x/ S/ A$ [% [- {8 m) ~! Q13-1 课程总结5 [( [( e: p' M5 P* \4 l
, s- X/ x5 ]: o
〖下载地址〗2 N: `1 B% b7 _  Y8 I# u
游客,如果您要查看本帖隐藏内容请回复

5 p5 h' S2 w! b+ o$ [1 G5 D$ t; V9 I! E1 R& Z- G
----------------华丽分割线-------------------------华丽分割线-----------------------华丽分割线-------------1 i' R( D# @  W

: q! K) l. }- t1 {〖下载地址失效反馈〗9 Z+ k$ p2 G4 S! `9 {4 I8 h5 G
如果下载地址失效,请尽快反馈给我们,我们尽快修复。请加微信留言:2230304070
! _/ N: p5 R; h- l; A' K) h
- }6 F: X5 j& h7 U〖升级为终身会员免金币下载全站资源〗
2 s7 T- X( w( U全站资源高清无密,每天更新,vip特权了解一下:http://www.mano100.cn/rjyfk_url-url.html6 E$ M4 g8 l0 `( t" ]" ~( a

' P: a4 L/ T1 g' W〖客服24小时咨询〗
5 t5 t8 u' s" E8 {* t7 f有任何问题,请点击右侧QQ邮箱:2230304070@qq.com 咨询。
回复

使用道具 举报

小小码农 | 2020-9-25 17:35:40 | 显示全部楼层
支持楼主,楼主牛逼
回复

使用道具 举报

saitama | 2021-3-7 10:34:14 | 显示全部楼层
afdsfdsfsf
回复

使用道具 举报

qwety20185 | 2021-9-15 02:43:38 | 显示全部楼层
+ i' K/ I& w3 V" h5 J
支持楼主,楼主牛逼
回复

使用道具 举报

modalogy | 2021-10-14 16:17:57 | 显示全部楼层
666666666666
回复

使用道具 举报

xiaoyou | 2021-10-19 18:35:38 | 显示全部楼层
支持支持支持支持支持支持
回复

使用道具 举报

lllwy | 2022-3-4 17:12:12 | 显示全部楼层
支持楼主,楼主牛逼
回复

使用道具 举报

13710858132 | 2022-4-3 20:14:45 | 显示全部楼层
666666666666666
回复

使用道具 举报

fengfengzi | 2022-5-18 18:45:22 | 显示全部楼层
ElectronElectronElectronElectronElectron
回复

使用道具 举报

newmanli1009 | 2022-6-20 05:29:13 | 显示全部楼层
爱了爱了爱了爱了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则