目录
第一篇基础篇
第1章React概述
1.1React简介
1.2React发展历程
第2章React开发环境搭建
2.1Node.js
2.1.1下载
2.1.2安装
2.2Npm
2.2.1设置镜像
2.2.2Npm、Yarn和Pnpm
2.2.3Npm常用命令
2.3Visual Studio Code
2.3.1安装VS Code
2.3.2安装VS Code扩展
2.4Vite
2.4.1为什么选择Vite
2.4.2Vite特点
本章小结
第3章React应用搭建
3.1搭建第一个React项目
3.2分析第一个React程序
3.2.1目录结构分析
3.2.2文件分析
本章小结
第4章JSX
4.1JSX是什么
4.2JSX规则
4.2.1只能返回一个根元素
4.2.2标签必须闭合
4.2.3使用驼峰命名法给大部分属性命名
4.2.4特性名称基于DOM API
4.3在JSX中通过花括号使用JavaScript
4.4渲染动态HTML
本章小结
第5章React合成事件
5.1鼠标事件
5.1.1onClick
5.1.2onDoubleClick
5.1.3onMouseOver
5.1.4onMouseLeave
5.2键盘事件
5.2.1onKeyDown
5.2.2onKeyUp
5.3焦点事件
5.3.1onFocus
5.3.2onBlur
5.4表单事件
5.4.1onChange
5.4.2onSubmit
5.5滚动事件
5.6事件传参
5.7阻止事件冒泡
5.7.1什么是事件冒泡
5.7.2阻止事件冒泡
本章小结
第6章React组件
6.1组件是什么
6.2类组件
6.2.1定义方式
6.2.2状态管理
6.2.3this关键字
6.2.4生命周期
6.3函数组件
6.3.1函数组件的优势
6.3.2定义方式
6.3.3状态管理
6.4受控组件与非受控组件
6.4.1受控组件
6.4.2非受控组件
6.4.3受控组件与非受控组件如何选择
6.5父组件与子组件
6.6组件的通信方式
6.6.1props和callback方式
6.6.2ref方式
6.6.3Context方式
6.6.4Event Bus方式
6.6.5ReactRedux和Zustand方式
本章小结
第7章React渲染
7.1条件渲染
7.1.1if语句
7.1.2三元表达式
7.1.3逻辑与运算符(&&)
7.2渲染列表
7.2.1map函数
7.2.2key
7.3管理CSS
7.3.1内联样式
7.3.2CSS Modules
7.3.3CSSinJS
本章小结
第二篇进阶篇
第8章React Hooks
8.1数据管理
8.1.1useState
8.1.2useReducer
8.1.3useSyncExternalStore
8.1.4useActionState
8.2生命周期
8.2.1useEffect
8.2.2useLayoutEffect
8.2.3useInsertionEffect
8.3状态保存
8.3.1useMemo
8.3.2useCallback
8.4状态的获取与传递
8.4.1useContext
8.4.2useRef
8.4.3useImperativeHandle
8.5过渡更新
8.5.1使用过渡更新的原因
8.5.2useTransition
8.5.3useDeferredValue
8.6乐观更新
8.6.1使用乐观更新的原因
8.6.2useOptimistic
8.7自定义Hooks
8.7.1命名规则
8.7.2仅在最顶层调用Hooks
8.7.3自定义Hooks示例
8.7.4ahooks
8.8工具Hooks
8.8.1useDebugValue
8.8.2useId
第9章React内置组件
9.1Fragments
9.2Suspense
9.3StrictMode
9.4Profiler
9.5Activity
第10章React内置API
10.1memo
10.1.1基础用法
10.1.2缓存函数引用
10.1.3控制对比过程
10.1.4性能优化时注意点
10.1.5React Compiler
10.2lazy
10.3startTransition
10.4createContext
10.5use
10.5.1读取Context
10.5.2读取Promise
第11章React路由
11.1路由的概念
11.2路由模式
11.3安装reactrouterdom
11.4路由的基础用法
11.4.1新建组件
11.4.2新建页面文件
11.4.3定义路由规则
11.4.4创建路由实例
11.4.5路由注册
11.5声明式、编程式导航
11.5.1声明式导航
11.5.2编程式导航
11.6动态路由
11.7配置404页面
11.8嵌套路由
11.9索引路由
11.10重定向
11.11错误边界
11.12路由传参
11.12.1search传参
11.12.2state传参
11.12.3动态路由匹配
11.13路由守卫
11.13.1同步权限检查
11.13.2异步权限检查
本章小结
第12章React状态管理仓库
12.1ReactRedux
12.1.1起源
12.1.2基础概念
12.1.3安装
12.1.4新建仓库切片
12.1.5新建存储实例
12.1.6全局注入
12.1.7基础用法
12.2Zustand
12.2.1安装
12.2.2创建仓库
12.2.3基础用法
12.2.4异步action
12.2.5数据持久化
本章小结
第13章React UI框架
13.1Ant Design安装
13.2常用组件
13.2.1Button按钮
13.2.2Input输入框
13.2.3Select选择器
13.3shadcn/ui
第14章TypeScript
14.1安装
14.2基础类型
14.2.1number
14.2.2string
14.2.3boolean
14.2.4null
14.2.5undefined
14.2.6symbol
14.2.7any
14.2.8unknown
14.2.9Array
14.3复杂类型
14.3.1联合类型(|)
14.3.2类型别名(type)
14.3.3交叉类型(&)
14.3.4枚举类型(enum)
14.3.5字面量类型
14.4类型推断
14.4.1基本数据类型推断
14.4.2对象类型推断
14.4.3数组类型推断
14.4.4函数类型推断
14.5函数
14.5.1函数的定义
14.5.2可选参数
14.5.3默认参数
14.5.4剩余参数
14.5.5参数解构
14.6接口
14.6.1描述对象的结构
14.6.2可选属性
14.6.3只读属性
14.6.4可索引的类型
14.6.5接口继承
14.6.6接口合并
14.6.7接口导入/导出
14.7泛型
14.7.1泛型函数
14.7.2泛型接口
14.7.3泛型参数的默认类型
14.7.4泛型约束
14.8实用技巧
14.8.1非空断言(!)
14.8.2类型断言(as)
14.8.3可选链操作符(?.)
14.8.4typeof
14.8.5keyof
本章小结
第15章React中TypeScript的应用
15.1项目搭建
15.2函数组件
15.2.1外部声明
15.2.2内联声明
15.2.3使用泛型
15.3Hooks
15.3.1useState
15.3.2useCallback
15.3.3useMemo
15.3.4useRef
15.3.5useContext
15.3.6useReducer
15.4内置类型
15.5事件处理
本章小结
第三篇实战篇
第16章Web端管理系统: 搭建企业级应用框架
16.1初始化项目
16.1.1Node版本要求
16.1.2VS Code插件安装
16.1.3创建项目
16.2配置路径别名
16.2.1安装@types/node
16.2.2配置vite.config.ts
16.2.3Typescript路径映射
16.3配置ESLint和Prettier
16.3.1安装相关插件
16.3.2配置eslint.config.js
16.3.3新建.prettierrc
16.3.4新建.prettierignore
16.3.5重启VS Code使配置生效
16.3.6配置package.json
16.4配置husky、lintstaged和@commitlint/cli
16.4.1创建Git仓库
16.4.2安装相关插件
16.4.3配置husky
16.4.4修改package.json
16.4.5新建commitlint.config.cjs
16.4.6进行提交
16.5VS Code自动格式化
16.6配置环境变量
16.6.1新建环境变量文件
16.6.2定义环境变量
16.6.3定义变量ts类型
16.6.4使用变量
16.6.5在vite.config.ts中使用环境变量
16.7配置axios
16.7.1安装axios
16.7.2新建axios实例
16.7.3接口类型
16.7.4定义请求接口
16.7.5使用接口
16.8配置路由
16.8.1安装reactrouterdom
16.8.2路由的基础用法
16.9配置Zustand
16.9.1安装Zustand
16.9.2创建仓库
16.9.3基础用法
16.10AntD配置
16.11打包配置
16.11.1分包
16.11.2生成.gz文件
16.11.3.js和.css文件夹分离
第17章Web端管理系统: 权限管理
17.1后端设计(使用Express框架)
17.1.1设计思路
17.1.2搭建后端服务
17.1.3配置路由
17.1.4跨域处理
17.2前端设计
17.2.1定义使用到的常量
17.2.2配置axios
17.2.3调整目录结构
17.2.4调整路由
17.2.5登录权限设置
17.2.6接口权限设置
17.2.7菜单栏权限设置
17.2.8页面权限设置
17.2.9按钮权限设置
本章小结
参考文献
