React 配置化 Serverless 开发个人博客[完结]
【课程介绍】
“低代码+云原生” ,已然成为大厂全栈解决方案新宠!本课程中,Dell老师将结合最新实践经验,以个人博客的开发为例,带领大家从解决问题角度出发,通过 “ 前端配置化+后端 Serverless” 全流程实践,助你先人一步把握技术新潮流,获取中大厂高薪人才必备的 “硬核” 技能!: L6 c3 s
【课程目录】
第1章 课程概览1 节 | 12分钟
本章细致介绍了整门课程的设计思路及知识体系串联脉络,从 React 语法,前端复杂项目开发、面向 Schema 的代码设计、到服务端代码开发、三方鉴权系统集成、云原生及 Serverless 代码部署,希望帮助大家得到质变得提升!
– Q0 Q9 v( @* v- u
收起列表
视频:‘ S- G+ v: J$ o. ?! G
1-1 关于课程你需要了解的都在这里 (11:29)
第2章 配置化博客系统前台页面开发 10 节 | 106分钟$ c( _" _’ R8 C) _& e [
本章将带大家为后续项目开发打好环境基础。包含编辑器、Create React APP 脚手架等。不仅会借助 React Hook 语法,编写博客系统的前台展示页面组件,还会重点介绍工程目录设计、阿里云 OSS 文件存储、Webpack 多入口打包配置等相关内容。…: ~! m7 u/ m7 H$ N# S+ e7 w5 e: V# ]
收起列表: R, G k% d% H’ P# @ ?
视频:$ ?! c0 P. W( H. m8 P2 j
2-1 前端开发环境准备 (07:23)
视频:
2-2 前端工程目录初始化 (13:55)8 L* }/ ^/ z& g# b" y$ |1 X. ?
视频:
2-3 项目样式初始化 (07:54) t# y/ q. U* C, g5 G- E& a
视频:( G! l$ {( w6 C/ Z( [
2-4 Banner组件的代码编写 (16:25)( y) l; X7 m0 P: V z$ ]$ p
视频:
2-5 首页课程列表组件代码开发 (15:12)( z2 e’ a, V" [
视频:
2-6 使用 OSS 存储静态资源 (11:23)
视频:+ g8 L2 O2 K$ y$ s2 { u; A, g8 ]
2-7 Webpack 多页面入口的配置 (19:55)
作业:
2-8 Webpack 多入口的大包方式在项目中能解决什么问题?
视频:, A3 G8 j5 o p! M$ ?
2-9 清除自动化测试相关的干扰代码 (03:13)
视频:
2-10 目录结构优化及首页 Footer 组件代码编写 (10:04)& T/ \% W. T9 [, h3 J
第3章 配置化博客系统后台页面开发 12 节 | 133分钟‘ V7 e’ m: K+ v3 {. Y Q& r" k
本章带大家使用 Antd 组件库集成 IconFont 搭建系统的后台管理页面,认识配置化编程的基本设计思想以及可扩展 Schema 的基本设计方案。实现层讲解了借助 Ref 层次拆解协议的设计方法,并通过 LocalStorage 对协议进行存储,方便前后台页面进行开发调试。…" F. ?% `9 \+ T; O; Z
收起列表) C! P7 }’ n9 G
视频:
3-1 使用 antd 进行后台管理系统布局搭建 (17:14)
视频:
3-2 iconfont 的使用及细节代码调整(上) (17:25)6 `, L; K) {! {3 k9 \
视频:– U; T& M: B9 E0 H2 ?7 D
3-3 iconfont 的使用及细节代码调整(下) (03:36)
视频:
3-4 动态区块展示配置功能开发 (21:25)& a2 j" l) U’ k9 y’ p
视频:% Q8 d3 Z2 n. }8 S
3-5 使用 LocalStorage 实现配置内容的持久化存储 (09:17)6 @( \( @ N) V* D
作业:9 h: M j7 [# H) m* E. j4 Y’ v
3-6 【思考】LocalStorage 和 Cookie 注意事项5 v! v/ `- J: h0 r. u
视频:% G% l4 t# r1 h8 f
3-7 增加首页配置,组件结构变更 (11:34), [5 _ S/ W x* {- R& y1 i
视频:
3-8 使用 useRef 调取子组件数据实现配置存储 (20:45)
作业:5 S" Z/ t0 \* K4 S3 o% s
3-9 【思考】使用 Ref 的方式,通过父组件调用子组件的优劣
视频:
3-10 可扩展 Schema 协议的设计(上) (14:15)0 Y+ {$ w" }: j
视频:‘ @- [9 P5 B1 G2 K7 z, ^
3-11 可扩展 Schema 协议的设计(下) (11:31)! J+ p. A7 H. K2 [1 {& D" j
视频:
3-12 代码清理 (05:57)4 P0 f! g$ C+ }0 i2 ?9 N3 w: q1 B
第4章 配置化协议的编码实现 8 节 | 108分钟
本章讲解了如何通过 Ref 逐级分解 Schema,并最终拼装协议的代码实现。通过巧妙的设计,快速便捷的实现三级协议的灵活生成及存取。同时讲解了数据重置功能的实现思路。通过协议中子节点拖拽排序的功能,衍生出对基于 Ref 设计存在不足的思考,从而讲解 Redux 在项目中使用的必要性。…
收起列表
视频:
4-1 最外层 Schema 的存取逻辑 (09:23)– z5 z$ q5 H. o5 t$ @ o6 b
视频:
4-2 围绕 Schema 结构合理设计组件层次 (14:26)‘ y9 k/ l& [6 }5 q
视频:
4-3 二层 Schema 的存储逻辑开发 (21:06)
视频:& {2 i’ k: n: I8 q% e" H
4-4 多层次 Schema 的标准逻辑设计 (22:48)8 F9 c’ Y& q6 X$ N3 ~’ R9 H7 p
视频: y9 Y. M( ^* K) F’ f
4-5 Schema 重置的逻辑实现 (13:44)$ Z! U’ I6 v5 x# S M1 D. {7 B. }
作业:6 ?3 I) i$ j) e/ f: ^
4-6 【思考】一个真正复杂的协议 Schema,应该考虑那些因素?2 o; r: c& k1 V& f# {8 j+ L$ g* V
视频:
4-7 设计优化解决系统 BUG (15:35)/ N0 G7 f( }8 s: j+ j
视频:– z’ |) n/ b* t0 P
4-8 拖拽排序功能的实现以及数据设计思考 (10:55)5 @* j’ W6 Z4 ^
第5章 使用 Redux 升级协议存取方案 8 节 | 104分钟4 [: m; S" x+ D* M& W P( [
基于 Ref 的设计虽然简单易用,但应对复杂 Schema 场景,存在明显短板。在本章我们将使用 Redux、Immer 对协议存取方案进行全面升级,解决掉前几章遗留的设计问题,完成后台页面协议存储部分的开发,并开始与前台页面进行功能调试。…
收起列表4 p( P( w: m# e. H( p
视频:
5-1 在工程中引入 Rudex, React-Redux, Immer (19:22)7 z0 E’ F( A& f0 r: I! e
作业:! {! u L( ^+ D* I( O8 I7 N
5-2 【思考】在做 React 项目时,如何尽量的让项目的性能可控8 }/ p2 l. I2 f1 E. E& J8 v0 k- x
视频:
5-3 根组件 Redux 升级及工程目录优化(上) (14:26)
视频:# i8 N6 z( m( f
5-4 根组件 Redux 升级及工程目录优化(下) (12:57)7 ?$ H4 D0 p- V* M’ T, Z9 ?9 G
视频:
5-5 子组件 Redux 架构改良(上) (18:42)" L# g* N" A. x0 V. y1 F
视频:* }( T; b* J5 Z/ s
5-6 子组件 Redux 架构改良(下) (08:46)
视频:– e$ m |* s" ^/ U. o
5-7 使用 React Sortable HOC 实现列表排序 (16:35)
视频:6 B, c7 w8 M2 e’ ]) f
5-8 Schema 展示调试,实现后台配置前台灵活展示 (12:42)) O0 \& T" n+ W, n
第6章 前后台页面协议调试串联 13 节 | 200分钟
本章以 Localstorage 中存储的数据结构为标准,进行前后台两个页面的功能调试,实现 Banner 组件、 List 组件、Footer 组件 100% 基于配置展示,不开发代码即可灵活对页面数据进行变更。同时引入 React Router, 讲解了 Hook 语法下,前端路由的基础使用方式。…# _( r1 j$ T* z) K& U
8 j0 q9 T) [9 W( Y! d$ @- I
收起列表
视频:0 j6 e, \4 ?9 s( b$ x% W
6-1 Banner 组件协议扩展的实现(下) (07:28)
视频:
6-2 基于协议的 Banner 代码调试测试 (23:14). v8 C, P3 _$ S& C’ U, g! X
作业:
6-3 【思考】作为前端,你在开发中是如何进行代码项目联调的?
视频:& H: s7 `- j. l
6-4 Banner 配置化开发收尾 (12:56); \/ ]/ s( a& q% o0 J1 [: r- k2 f0 Q
视频:. \/ x; @5 J) R6 [
6-5 列表组件的配置展示实现(上) (26:01)+ w5 Q* Z+ o- `
视频:
6-6 列表组件的配置展示实现(中) (19:03)
视频:
6-7 列表组件的配置展示实现(下) (19:55)) u- E; K# ~) A) Q
视频:– b9 }/ ^0 f8 Z4 ^! w% F, e
6-8 Footer 配置化实现(上) (14:24)7 z7 R2 c% {+ c( i+ O# F
视频:
6-9 Footer 配置化实现(下) (16:29)
视频:& @ L) c$ J- _0 Y; a
6-10 React-Router 的使用及项目总结(上) (14:29)" h; Z* \( N% f5 j
视频:$ j) N7 |& N% ]$ u; o! \6 ~
6-11 Banner 组件协议扩展的实现(上) (18:06)
视频:( I4 K8 y" o) W6 C, A
6-12 React-Router 的使用及项目总结(中) (15:02)
视频:
6-13 React-Router 的使用及项目总结(下) (12:35) a; Q" O7 e. U. r) W. `
第7章 基于 Midway FaaS 的 Serverless 服务端代码开发 8 节 | 113分钟* L0 F1 |6 l8 e. Y, L ?: }+ F
本章讲解了使用 Midway FaaS 框架,搭建数据库环境、使用 TypeORM 进行数据库映射操作,开发服务端接口,通过接口存取协议的内容。过程中,实现了标准化的异常处理中间件、参数校验逻辑和接口数据结构。开发完成后,本章借助阿里云的 Function Computing,完成了对框架代码的函数式部署,并绑定域名可以线上执行。…/ z: H- x" R! X# }/ ^
收起列表
视频:
7-1 服务端课程脉络 (05:07)
视频:, s; ~+ ~0 Y; d
7-2 Midway Faas 框架代码介绍 (16:48)
视频:
7-3 使用 TypeORM 连接管理数据库 (23:19)
作业:8 M( B* d3 r8 Q
7-4 【思考】TypeORM 带来的核心优势是什么?3 e9 Z+ d2 q& J3 b
视频:& ]( B2 Q" G) L+ E, s: v( ~+ b
7-5 接口逻辑的实现 (17:26)( q2 ~/ _1 R4 S" S* P3 F, Q2 l
视频:
7-6 参数校验、异常处理、标准化接口 (22:50)
视频:
7-7 Serverless FaaS 线上部署及域名绑定 (26:43)
作业:1 X0 c7 h: x* s/ x) F’ X. |
7-8 【思考】云原生的概念是什么?使用云上服务有什么优势?8 {3 Y" n" J% o$ D) h( r# v
第8章 前后端系统的接口联调及部署2 节 | 49分钟
本章讲解了如何使用 Webpack Dev Server 中的 Proxy 能力方便快捷的畸形本地前后端代码联调,以及在联调成功后,如何进行前后端系统的部署。在此过程中,我们不仅详细讲解了 Serverless FaaS 架构的核心优势和劣势,更解决了 PublicPath、接口调用跨域等问题,顺利完成了项目的发布上线。…
/ e& N2 \ v. w
收起列表" C: k. D5 B$ S0 C8 z% i$ ^+ M
视频:% r/ H$ I# |6 G" r5 H
8-1 前端 Proxy 配置高效进行接口联调 (27:11)
视频:
8-2 前后端代码完整上线 (20:59); i& B% j, @8 o8 w
第9章 使用 BaaS 能力丰富 Serverless 项目功能 6 节 | 79分钟
本章使用 Authing 提供的第三方 BaaS 鉴权能力,为项目增加了登录退出和存储管控的功能。通过实践讲解了为什么 Serverless = FaaS + BaaS,以及 BaaS 能力集成的典型流程。在此基础上,对工程中前后端代码中的请求类、自定义 Hook,通用函数进行了封装拆分,并最终发布完整版本的项目至线上环境。…
收起列表) w+ c, @3 Q8 i6 x# F
视频: J4 r: F1 O1 {
9-1 BaaS 简介 & 使用 Authing 实现前端登录功能 (19:36)
作业:
9-2 【思考】Serverless = FaaS + BaaS% R. I; _/ H* T" c, z$ C6 U1 m
视频:
9-3 Server 端根据用户进行权限管控 (11:15)
视频:
9-4 自定义Hook的拆分和鉴权请求的封装 (25:30)1 `2 O’ }+ ^; P& y( o
视频:3 v/ t& G* f6 z# E8 i9 {( x- f
9-5 登录退出代码完善及项目上线 (22:12)3 P$ H) G o, e! v3 C! W* U8 n
作业:4 x* w7 K e( `9 T! S5 g
9-6 【思考】关于鉴权,你有多少理解呢?0 `3 ?8 m0 k9 T# |" w