收藏

稿件投诉

记笔记

  • 用手机看
React项目实战课程-文章后台管理系统

2.7万

已完结 · 共270课时

长期有效

适合前端初学者的地表最强系列 React 项目实战课程

发布者
关注
up

刘龙彬

地表最强系列·视频教程金牌讲师,注重训练学生的编程思维,授课功底深入浅出,深受广大学员的好评。

课程概述

评论(0)

课程介绍
课程介绍
课程介绍
课程介绍
课程介绍
课程介绍
课程介绍
课程介绍
课程介绍
常见问题
Q:课程在什么时间更新?
A:课程更新频次以页面前端展示为准。购买成功后,课程更新将通过账号动态提示,方便及时观看。
Q:课程购买后有收看时间限制吗?
A:购买后除不可抗力因素外,本课程长期有效,请您放心购买。
Q:原价购买课程后,如遇到优惠折扣,是否可以退还差价或重新购买?
A:虚拟商品付款后无法返还,请您随时留意各类课程折扣信息,按需购买。
Q:购买课程后是否可以加入老师的粉丝群或者用户群?
A:如老师设置用户群,我们将邀您加入,但我们无法承诺所有老师均提供用户群服务,感谢理解。

查看更多

购买须知

1. 本内容为付费内容,购买成功后方可观看。

2. 本内容为虚拟服务,已购买内容不支持退款,敬请谅解。

3. 实际购买价格以页面展示的价格及订单结算页显示价格为准。

券后 199 元起/270课时 立即购买
优惠活动

【减200.0】React项目实战课程-文章后台管理系统 满399.0减200.0

领取
课程目录

课程群

初始化-注册-登录

1

全集试看

Fork 模板仓库

视频课

10分20秒

2

全集试看

把自己的仓库克隆到本地

视频课

6分56秒

3

全集试看

配置 CSS 模块化

视频课

6分10秒

4

全集试看

了解项目整体的路由配置

视频课

3分25秒

5

全集试看

配置路由

视频课

7分46秒

6

全集试看

提取登录和注册共享的 AuthLayout 布局组件

视频课

4分55秒

7

全集试看

实现 AuthLayout 组件的布局样式

视频课

11分14秒

8

全集试看

Git 分支操作

视频课

1分49秒

9

全集试看

配置 CSS 模块化生成的类名风格

视频课

10分51秒

10

全集试看

基于 antd 组件库绘制注册页面的表单

视频课

15分29秒

11

全集试看

基于 Link 组件绘制底部去登录的链接

视频课

1分22秒

12

全集试看

为表单项添加 pattern 正则校验

视频课

5分47秒

13

全集试看

完善确认密码框的校验规则

视频课

13分31秒

14

接口文档和调用接口的注意事项

视频课

6分2秒

15

如何使用接口授权码访问项目的接口

视频课

6分23秒

16

安装并配置 axios

视频课

14分48秒

17

基于 useSubmit 把数据提交给路由的 action 函数

视频课

15分2秒

18

调用注册接口并处理调用失败的情况

视频课

11分40秒

19

根据注册的结果进行失败的提示或成功的跳转

视频课

8分37秒

20

请求期间展示 loading 效果

视频课

8分17秒

21

深入说明 loading 条件的运算过程

视频课

4分47秒

22

在 axios 的请求拦截器中挂载请求体转换器

视频课

14分24秒

23

封装请求体转换器函数

视频课

6分28秒

24

按需挂载请求体转换器

视频课

4分50秒

25

使用响应拦截器统一展示错误消息

视频课

11分28秒

26

处理请求失败且没有响应体时如何提示错误消息

视频课

8分16秒

27

通过响应拦截器把真正的数据返回给用户

视频课

10分29秒

28

提交注册的 Git 分支

视频课

2分51秒

29

绘制登录组件的表单结构

视频课

6分50秒

30

为表单项添加正则校验

视频课

3分

31

使用 useSearchParams 解析查询参数

视频课

8分48秒

32

使用 userFetcher 提交表单数据

视频课

5分4秒

33

封装并调用登录的接口

视频课

5分29秒

34

为 axios 接口提供返回数据的 TS 类型

视频课

6分3秒

35

为登录按钮绑定 loading 状态和 loading 延迟

视频课

5分58秒

36

在项目中配置 zustand 进行全局状态管理

视频课

8分11秒

37

把 token 存储到 zustand 中

视频课

6分35秒

38

提交登录的 Git 分支

视频课

3分12秒

后台主页

39

绘制后台主页的基础布局

视频课

14分49秒

40

把 Header 区域封装为独立的组件

视频课

14分42秒

41

实现 Header 组件内部元素的布局效果

视频课

6分50秒

42

询问用户是否确认退出登录

视频课

5分21秒

43

实现退出登录的功能

视频课

8分47秒

44

未登录不允许访问后台主页

视频课

11分53秒

45

登录后禁止访问登录和注册页面

视频课

11分29秒

46

基于 token 进行接口鉴权

视频课

4分21秒

47

在 zustand 中创建 user 相关的模块

视频课

9分36秒

48

为 user-store 配置中间件

视频课

2分37秒

49

封装接口获取用户的基本信息并存储到 store 中

视频课

15分42秒

50

渲染用户名称和头像

视频课

5分18秒

51

处理 token 失效的问题

视频课

7分40秒

52

获取左侧菜单的列表数据

视频课

9分47秒

53

封装 RootMenu 组件渲染左侧菜单的数据

视频课

6分14秒

54

处理左侧菜单的图标

视频课

16分12秒

55

修改子菜单的背景颜色

视频课

1分57秒

56

实现父级菜单互斥展开的效果

视频课

4分46秒

57

点击菜单项实现路由跳转

视频课

7分25秒

58

创建 Home 首页对应的路由规则

视频课

7分8秒

59

完善个人中心和文章管理对应的路由规则

视频课

8分41秒

60

刷新网页时动态设置左侧菜单的选中项

视频课

8分8秒

61

分析递归查找左侧菜单展开项的实现思路

视频课

5分17秒

62

递归查找需要被展开的菜单项的 key 值

视频课

14分47秒

63

隐藏修改文章的菜单项

视频课

2分18秒

64

优化 token 无效后的错误提示

视频课

6分55秒

65

实现面包屑组件的基础布局

视频课

4分11秒

66

分析如何递归生成面包屑导航的数据源

视频课

8分43秒

67

定义函数递归生成面包屑导航的数据源

视频课

9分58秒

68

调用递归函数生成面包屑导航的数据源

视频课

5分26秒

69

使用 useMemo 缓存递归计算的结果

视频课

2分22秒

70

优化 RootMenu 组件中数据的 TS 类型

视频课

2分18秒

71

提交后台主页的 Git 分支

视频课

3分1秒

个人中心

72

绘制基本资料的表单结构

视频课

11分1秒

73

回显表单数据

视频课

5分17秒

74

点击按钮进行数据还原

视频课

4分43秒

75

封装接口并实现修改基本资料的功能

视频课

12分58秒

76

优化 action 中的代码逻辑

视频课

5分48秒

77

为保存按钮添加 loading 效果

视频课

2分8秒

78

提交修改基本资料的 Git 分支

视频课

1分49秒

79

绘制重置密码的表单

视频课

4分59秒

80

基于 validator 添加表单验证

视频课

16分56秒

81

实现重置表单的功能

视频课

3分26秒

82

封装接口实现修改密码的功能

视频课

9分5秒

83

密码修改成功后重置表单

视频课

4分9秒

84

展示 loading 提示的两种方案

视频课

7分47秒

85

提交修改密码的 Git 分支

视频课

1分46秒

86

渲染更换头像的基础布局

视频课

6分24秒

87

点击按钮展示选择头像的对话框

视频课

5分10秒

88

读取并展示用户选择的头像

视频课

6分8秒

89

动态计算保存按钮的禁用状态

视频课

3分56秒

90

封装接口实现更换头像的功能

视频课

6分59秒

91

展示保存按钮的 loading 状态

视频课

1分43秒

92

提交更换头像的 Git 分支

视频课

1分57秒

文章分类

93

获取文章分类的列表数据

视频课

10分4秒

94

渲染分类的表格数据

视频课

17分6秒

95

把添加分类按钮封装为独立的组件

视频课

4分28秒

96

使用 Modal 组件渲染添加分类的对话框

视频课

4分30秒

97

渲染添加分类的 Form 表单

视频课

5分57秒

98

手动触发表单的校验

视频课

5分37秒

99

学习对话框关闭时重置表单的两种方案

视频课

6分28秒

100

封装接口并实现添加分类的功能

视频课

8分54秒

101

说明如何精准判断 loading 的状态

视频课

9分43秒

102

将 method 添加为 loading 的判断条件

视频课

4分5秒

103

将 pathname 添加为 loading 的判断条件

视频课

10分47秒

104

为添加按钮设置 loading 的 delay 时间

视频课

3分21秒

105

分类添加结束后自动关闭对话框

视频课

6分29秒

106

只在添加成功之后才关闭对话框

视频课

3分1秒

107

封装 hooks 获取导航的状态

视频课

12分8秒

108

封装 ButtonEdit 组件

视频课

7分14秒

109

绘制修改分类的对话框和表单

视频课

12分59秒

110

封装接口实现修改分类的功能

视频课

9分38秒

111

复用自定义的 hooks 实现 loading 提示

视频课

5分55秒

112

在对话框的 afterClose 事件中重置表单

视频课

2分17秒

113

封装删除分类的 ButtonDelete 组件

视频课

4分2秒

114

使用 Popconfirm 询问用户是否确定删除

视频课

8分14秒

115

实现气泡确认框的互斥展示

视频课

7分24秒

116

点击确定按钮时防止关闭气泡确认框

视频课

9分33秒

117

封装接口实现删除分类的功能

视频课

8分38秒

118

基于 paramsSerializer 转换请求头中的数据

视频课

10分20秒

119

提交文章分类的 Git 分支

视频课

1分45秒

添加文章

120

演示添加文章要实现的功能效果

视频课

3分40秒

121

绘制顶部的 Steps 步骤条

视频课

7分16秒

122

封装基本信息的组件

视频课

8分50秒

123

请求并渲染分类的菜单项

视频课

7分34秒

124

把 current 存储到 zustand 中

视频课

10分46秒

125

使用 enum 增强代码的可读性

视频课

5分45秒

126

使用枚举优化 art-add-store 模块

视频课

1分

127

封装文章封面组件的基本布局结构

视频课

5分55秒

128

把 Store 中的文章信息回填到表单中

视频课

15分16秒

129

实现文章基本信息的实时存储

视频课

8分59秒

130

点击按钮选择文章封面

视频课

5分14秒

131

localStorage 无法存储 Blob 文件

视频课

4分56秒

132

了解如何自定义 zustand 的存储引擎

视频课

6分7秒

133

了解 localforage 的基本用法

视频课

7分38秒

134

自定义 zustand 的存储引擎

视频课

7分59秒

135

封装自定义存储引擎相关的代码

视频课

7分12秒

136

渲染文章封面的图片

视频课

4分55秒

137

选择封面后才允许进入下一步操作

视频课

2分17秒

138

分析为什么刷新网页会导致添加文章页面闪烁

视频课

3分58秒

139

解决刷新时添加文章页面时闪烁的问题

视频课

7分8秒

140

封装文章内容组件

视频课

7分15秒

141

自定义 Quill 的最小高度和工具栏按钮

视频课

9分2秒

142

提示用户填写要发表的文章内容

视频课

5分22秒

143

全局存储填写的文章的内容

视频课

3分37秒

144

把文章的发布状态存储到 Store

视频课

3分20秒

145

把文章数据提交到路由的 action 函数

视频课

5分12秒

146

封装接口实现发表的功能

视频课

10分11秒

147

清空本地存储的文章信息并实现 Steps 自增

视频课

2分35秒

148

展示发表文章期间的 loading 提示

视频课

4分16秒

149

封装 Done 状态对应的 Result 组件

视频课

9分39秒

150

实现去文章列表和再写一篇的功能

视频课

6分17秒

151

在 loader 中获取本地存储的 current 值

视频课

13分13秒

152

使用 shouldRevalidate 阻止 loader 执行

视频课

4分41秒

153

实现分支的提交(开发这么久了,偶尔水一下也很开心)

视频课

40秒

154

控制文章封面大小不能超过2M

视频课

6分32秒

155

点击浮动按钮快速清空表单

视频课

11分31秒

156

在路由导航时自动关闭 Modal 弹窗

视频课

8分50秒

157

提交添加文章功能对应的 Git 分支

视频课

1分47秒

文章列表

158

把搜索区域封装为组件

视频课

11分28秒

159

点击添加按钮导航到添加文章页面

视频课

3分52秒

160

通过 loader 获取并回显分类的列表数据

视频课

4分23秒

161

在 loader 中解析 URL 中的查询参数

视频课

14分56秒

162

把查询参数绑定为搜索表单的初始值

视频课

5分36秒

163

点击搜索按钮更新查询参数

视频课

6分55秒

164

点击重置按钮清空查询参数

视频课

2分16秒

165

封装并调用获取文章列表的 API 接口

视频课

7分38秒

166

封装并初步绘制表格组件的基础结构

视频课

10分31秒

167

使用 dayjs 格式化文章的发表时间

视频课

1分43秒

168

实现点击按钮跳转到文章修改页面的功能

视频课

5分6秒

169

封装删除文章的按钮组件

视频课

13分54秒

170

调用接口实现删除文章的功能

视频课

10分20秒

171

解决删除时 loading 不展示的问题

视频课

9分10秒

172

组件二次封装的规范

视频课

4分5秒

173

自定义组件时借用 Table 组件的官方属性

视频课

4分27秒

174

为自定义组件拓展分页所需的额外属性

视频课

7分40秒

175

为 Table 组件指定分页的配置选项

视频课

11分43秒

176

监听 page 和 pageSize 的变化重新请求分页数据

视频课

6分26秒

177

切换分页时保留查询参数中的发表状态和分类 id

视频课

6分25秒

178

每次触发搜索时将页码值重置为1

视频课

2分17秒

179

处理分页数据的序号

视频课

4分42秒

180

实现页码值回退操作并展示 Table 的 loading 状态

视频课

20分3秒

181

提交文章列表的 Git 分支

视频课

1分36秒

修改文章

182

定义修改时存储文章信息的 Store 模块

视频课

7分20秒

183

配置 zustand 的中间件

视频课

7分45秒

184

初始化文章详情数据并存储到 Store 中

视频课

10分21秒

185

渲染 Steps 步骤条

视频课

5分19秒

186

封装修改文章时的基本信息组件

视频课

7分9秒

187

为基本信息的表单设置初始值

视频课

2分35秒

188

把变化后的表单更新到 Store 中

视频课

5分51秒

189

点击按钮进入下一步

视频课

2分57秒

190

使用 useBeforeUnload 阻止浏览器的刷新

视频课

8分9秒

191

关于刷新时浏览器弹窗的说明

视频课

1分42秒

192

说明 useBlocker 的基本语法

视频课

8分34秒

193

使用 useBlocker 在导航离开前进行弹窗询问

视频课

10分29秒

194

导航离开之后重置 current 的值

视频课

1分50秒

195

在 loader 中重置 current 的值

视频课

2分49秒

196

基于 useRef 实现屏蔽多个弹窗的功能

视频课

5分7秒

197

快速实现文章封面组件的布局和功能

视频课

9分12秒

198

快速实现文章内容组件的布局和功能

视频课

6分52秒

199

按需展示修改文章底部的按钮

视频课

4分4秒

200

封装接口实现修改文章的功能

视频课

9分7秒

201

优化修改文章接口调用成功之后的页面逻辑

视频课

2分56秒

202

使用 useRef 解决按钮闪烁问题

视频课

3分25秒

203

解决修改文章时 loading 不展示的问题

视频课

1分16秒

204

封装文章修改成功后的结果组件

视频课

4分25秒

205

了解如何在路由导航时携带 state 状态

视频课

7分2秒

206

导航时通过 state 携带 URL 中的查询参数

视频课

3分50秒

207

自定义封装 CountDown 倒计时组件

视频课

15分39秒

208

优化倒计时组件的实现逻辑

视频课

6分23秒

209

处理面包屑导航的路径匹配问题

视频课

9分6秒

210

提交修改文章的 Git 分支

视频课

1分43秒

Deferred Loader

211

使用按钮的 disabled 属性屏蔽额外的点击操作

视频课

8分49秒

212

在提交之前屏蔽按钮额外的点击操作

视频课

3分41秒

213

使用自定义的 hook 优化个人中心的 loading 展示效果

视频课

5分14秒

214

分析路由切换时页面卡顿的原因

视频课

4分26秒

215

介绍 Deferred Data 的基本语法格式

视频课

15分50秒

216

使用 Deferred Data 完成对文章分类的改造

视频课

6分20秒

217

封装 delay 函数模拟 Promise 的延迟操作

视频课

6分38秒

218

自定义封装 loader-error-element 组件

视频课

13分1秒

219

在 Spin 组件上展示自定义的文本消息

视频课

1分22秒

220

分析如何基于 defer 改造文章列表的 loader 函数

视频课

4分41秒

221

改造 ArticleList 组件中的 loader 函数

视频课

2分38秒

222

在 ArticleList 组件中获取并使用异步数据

视频课

9分24秒

223

在子组件中使用 useAsyncValue 获取异步数据

视频课

8分5秒

224

搜索或分页切换时展示 loading 状态

视频课

5分4秒

225

使用 useAsyncValue 改造删除组件中的代码

视频课

7分2秒

226

拓展 Chrome 调试工具中的副面板的基本用法

视频课

3分44秒

227

针对 ArticleAdd 组件中的 loader 函数进行改造

视频课

3分25秒

228

针对文章分类的下拉菜单进行 loading 的展示

视频课

11分10秒

229

分类数据请求期间隐藏下一步的按钮

视频课

2分3秒

230

优化文章列表页面中 loading 遮罩层的覆盖范围

视频课

1分56秒

231

改造 ArticleEdit 组件中的 loader 函数

视频课

4分28秒

232

改造 EditBase 组件中文章分类的表单项

视频课

3分52秒

233

解决修改文章时标题紊乱的问题

视频课

4分10秒

234

为文章标题的表单项设置 loading 效果

视频课

6分35秒

235

在 Await 等待期间不展示下一步按钮

视频课

1分24秒

236

使用 defer 改造 Root 组件中的 loader 函数

视频课

2分55秒

237

基于 Suspense 和 Await 改造 Root 组件

视频课

4分29秒

238

使用 useAsyncValue 改造 RootMenu 组件

视频课

6分29秒

239

改造 RootBreadcrumb 组件中数据的获取

视频课

2分43秒

240

把 deferred loader 代码进行分支提交

视频课

2分20秒

优化与发布

241

实现登录失效后的携参跳转

视频课

10分27秒

242

优化 AuthLayout 组件中的判断逻辑

视频课

4分42秒

243

自定义路由的错误页

视频课

4分52秒

244

使用无 path 的 Route 设置子路由的公共错误页

视频课

2分55秒

245

为注册、登录、后台主页设置自定义的错误页

视频课

1分30秒

246

自定义路由匹配失败后的404页面

视频课

3分46秒

247

使用 matchRoutes 匹配合法路径

视频课

11分23秒

248

如果访问地址是根路径或 home 则不用携带 from 参数

视频课

3分26秒

249

使用 onFinishHydration 监听数据是否还原完毕

视频课

11分4秒

250

把登录、注册 和 Root 组件改造为路由懒加载的形式

视频课

7分44秒

251

把 children 子路由改造为懒加载的形式

视频课

10分26秒

252

使用 subscribe 监听路由的变化

视频课

8分13秒

253

在页面资源加载期间使用 nprogress 展示进度条

视频课

5分42秒

254

把 vite 打包配置拆分到 dev 和 prod 文件中

视频课

11分24秒

255

解决配置文件的导入路径报错的问题

视频课

1分41秒

256

项目打包时按照文件类型组织文件夹

视频课

11分24秒

257

使用 node.js 和 express 托管 web 项目

视频课

6分37秒

258

删除所有的 console 语句和断点

视频课

3分5秒

259

以可视化的方式查看打包的结果

视频课

5分1秒

260

使用 html 插件向网页中注入标题和 script 标签

视频课

12分44秒

261

解决 html 插件导致的终端黄色警告的问题

视频课

1分28秒

262

使用 external 指定要排除的依赖包

视频课

5分2秒

263

通过 injectScript 把 CDN 资源注入到网页中

视频课

6分17秒

264

通过 externalGlobals 指定映射关系

视频课

6分41秒

265

抽离 localforage 和 react-quill

视频课

6分3秒

266

抽离 antd 组件库

视频课

7分

267

react-router-dom 没必要进行抽离

视频课

5分56秒

268

使用免费 CDN 资源所存在的问题

视频课

3分52秒

269

在 node 服务器中开启资源压缩

视频课

4分38秒

270

项目结束-提交 optimize 分支-噢耶撒花~

视频课

2分33秒

相关推荐
课程封面

uni-app开发资讯类微信小程序项目实战课程

基于uni-app开发微信小程序项目实战教程

586播放/共184课时

课程封面

elementplus源码实现(第十期)

教你从0实现自己的elementplus组件库

227播放/共36课时

课程封面

android支付实战课程集成支付宝支付

课程包含了后端代码,后端异步通知以及数据库的创建

1037播放/共10课时

课程封面

Python小白也能听懂的入门课

Michael老师,ViaX盐趣签约导师,南洋理工大学博士。新华网大数据分析师、新加坡A-STAR研究中心研究员、曾获“新加坡总统奖学金”、论文曾多次发表在CSWIM、ICIS、ISR、IS等国际会议

396.7万播放/共20课时

课程封面

elementplus源码实现(第九期)

教你从0实现自己的elementplus组件库

105播放/共56课时

课程封面

DataTables前端分页通用型解决方案

DataTables前端分页通用型解决方案

11播放/共9课时

课程封面

Web前端入门:从零开始做网站

带社群答疑服务,赠送全部课件、素材、模版、软件

107.5万播放/共31课时

课程封面

elementplus源码实现(第八期)

教你从0实现自己的elementplus组件库

91播放/共54课时

课程封面

前端实战训练:2个网站+1个APP

不止教技术,还教思维的前端系统入门课,手把手带你轻松搞定2个网站+1个APP项目,全场景养成你的思维、技术的高能方法论

54.6万播放/共52课时

课程封面

网页设计与Falsh动画

本课程包括HTML基础知识、CSS样式、Flash动画特效

87播放/共9课时

课程封面

python上位机开发

利用python上位机开发案例让你快速掌握python上位机

2.3万播放/共38课时

课程封面

elementplus源码实现(第七期)

教你从0实现自己的elementplus组件库

68播放/共82课时

课程封面

Vue3+Claude前端新解法 第一季

左手Vue3右手AI,轻松掌握前端开发,极速打造专属作品。

67播放/共32课时

课程封面

【Unity与C#实战】从零开发类皇室战争游戏

从0开发一个完整的商业案例,学会后可以自行开发其他3D案例。

36.4万播放/共62课时