万本电子书0元读

万本电子书0元读

顶部广告

AI辅助React Web应用开发实践:基于React 19和GitHub Copilot电子书

·内容体系化:从 React 基础到阶,再到项目实战,构建完整学习路。 ·实战导向强:以聊天应用发为例,手把手演示现代 React 技术落地过程。 ·AI 融合深:融 AI 辅助发全场景,覆盖代码生成、测试等核心环节。 ·技术前沿化:聚焦 React 19 及 GitHub Copilot,同步行业发范式。 ·受众适配广:适配 Web发者自学与院校教学,满足多元学习需求。

售       价:¥

纸质售价:¥70.00购买纸书

0人正在读 | 0人评论 6.6

作       者:宋一玮 著

出  版  社:人民邮电出版社有限公司

出版时间:2025-09-01

字       数:33.0万

所属分类: 科技 > 计算机/网络 > 计算机教材

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(条)
  • 读书简介
  • 目录
  • 累计评论(条)
本书旨在系统介绍React框架,围绕React18及后续版本的核心发范式--函数组件和Hooks展,并以一款聊天应用的发为例演示如何运用现代React技术发Web应用。另外,本书还将探讨 AI技术在React前端发中的应用实践。 本书分为3个部分。第一部分是React基础,从创建React项目手,先系统介绍JSX 语法、React组件、基础HooksAPI等基础知识,再介绍如何使用props、state、context等数据驱动 React发,如何利用副作用和事件处理实现业务、交互逻辑,以及如何发组件样式。第二部分是React 阶,深介绍生命周期与虚拟DOM、应用状态管理及相关框架、优化性能与用户体验,并从自定义Hooks、代码复用等角度介绍如何发可扩展的React代码。第三部分是Web应用发,以聊天应用为载体,结合 React技术生态,演示前端路由、表单处理、与服务器端通信、质量保证、工程化与架构等,并以发 AI 聊天机器人为例探索AI时代前端发的创新方向。同时,本书会在相关章节中融AI辅助发的内容,涵盖AIIDE、智能体代码生成、组件拆分辅助、性能问题分析、样式代码生成和单元测试、代码审查等。 本书既适合有一定编程经验的Web应用程序发人员阅读,也可作为高校及培训机构相关专业课程的教学用书。<br/>【推荐语】<br/>·内容体系化:从 React 基础到阶,再到项目实战,构建完整学习路。 ·实战导向强:以聊天应用发为例,手把手演示现代 React 技术落地过程。 ·AI 融合深:融 AI 辅助发全场景,覆盖代码生成、测试等核心环节。 ·技术前沿化:聚焦 React 19 及 GitHub Copilot,同步行业发范式。 ·受众适配广:适配 Web发者自学与院校教学,满足多元学习需求。<br/>【作者】<br/>宋一玮,专注于前端架构与工程化实践近20年,现任FreeWheel基础架构部前端架构师,负责React技术栈选型、关键模块发,以及团队能力建设;曾供职于IBM、亚马逊、时光网等公司,基于以React为主的框架主导发了10余个大型企业级应用和消费级应用,涵盖电商系统、视频广告管理平台、数据可视化平台及移动端应用,其中一些应用的全球日活用户超过百万;在极客时间设专栏“现代React Web发实战”,已吸引2万多用户订阅学习,获得广泛认可。<br/>
目录展开

内容提要

前言

资源与支持

第一部分 React基础

第1章 你好,React

1.1 React技术简介

1.2 贯穿全书的聊天应用oh-my-chat

1.3 快速创建React项目

1.3.1 准备开发环境

1.3.2 选择代码编辑器

1.3.3 AI辅助:安装AI代码编辑器

1.3.4 使用create-vite创建React项目

1.3.5 提交代码到代码仓库

1.4 编写基础应用代码

1.4.1 项目实现:编写聊天视图代码

1.4.2 AI辅助:生成联系人视图代码

1.5 React的技术生态

1.5.1 一些开源React组件库

1.5.2 什么是“React全家桶”

1.5.3 React Native简介

1.6 AI辅助的前端开发概述

1.7 小结

第2章 JSX语法

2.1 JSX语法基础

2.1.1 JSX是一种语法糖

2.1.2 JSX的“X”:标记的基本写法

2.1.3 JSX的“JS”:JavaScript表达式

2.1.4 JSX与HTML的异同

2.2 进一步理解JSX

2.2.1 前端开发的声明式与命令式

2.2.2 JSX的产物:React元素

2.2.3 不用JSX还能写React代码吗

2.3 编写JSX的常用模式

2.3.1 条件渲染

2.3.2 循环渲染

2.3.3 透传子元素

2.3.4 属性展开语法

2.4 AI辅助:生成JSX代码

2.5 小结

第3章 React组件

3.1 前端开发组件化

3.2 用函数定义React组件

3.3 组件与Hooks API

3.3.1 借用函数式编程理解Hooks

3.3.2 React Hooks有哪些

3.3.3 Hooks的使用规则

3.4 组件树

3.5 如何拆分React组件

3.5.1 用React Developer Tools查看组件树

3.5.2 拆分组件的原则和常见方法

3.5.3 项目实现:继续拆分oh-my-chat的组件

3.5.4 项目实现:将组件拆分为独立文件

3.5.5 组件拆分的一些心得

3.6 AI辅助:AI与组件树设计

3.6.1 AI辅助:用AI指导组件拆分

3.6.2 AI辅助:根据代码画出组件树

3.7 过时API:类组件

3.7.1 函数组件的崛起

3.7.2 还有必要学习类组件吗

3.8 小结

第4章 数据驱动(上):React的数据

4.1 React是数据驱动的前端框架

4.2 Props:父组件传给子组件的数据

4.2.1 如何声明和使用props

4.2.2 项目实现:利用props拆分oh-my-chat列表组件

4.3 state:组件自己的状态数据

4.3.1 组件状态

4.3.2 核心Hook:useState

4.3.3 项目实现:利用state管理oh-my-chat列表数据

4.3.4 更新state的自动批处理

4.4 context:组件树共享的全局数据

4.5 小结

第5章 数据驱动(下):组件间通信

5.1 React组件间通信

5.2 组件间通信模式:状态提升

5.2.1 什么是状态提升

5.2.2 项目实现:利用状态提升实现联系人列表和详情的联动

5.3 组件间通信模式:属性钻取

5.3.1 什么是属性钻取

5.3.2 项目实现:用context代替props切换视图

5.4 AI辅助:重构组件代码

5.5 React中的单向数据流

5.5.1 什么是数据流

5.5.2 React单向数据流

5.5.3 项目实现:分析oh-my-chat的数据流

5.6 小结

第6章 React的副作用

6.1 什么是副作用

6.1.1 前端领域的副作用

6.1.2 React中的副作用

6.1.3 React中的渲染和提交

6.2 核心Hook:useEffect

6.2.1 useEffect的基本用法

6.2.2 副作用的条件执行

6.2.3 副作用的清理函数

6.3 项目实现:在oh-my-chat加入副作用

6.3.1 项目实现:利用副作用读取远程消息

6.3.2 项目实现:显示发送消息的相对时间

6.3.3 项目实现:自动滚动到消息列表末尾

6.4 开发模式下的useEffect

6.4.1 依赖项数组的静态检查

6.4.2 为什么副作用会被触发两次

6.5 小结

第7章 事件处理

7.1 React合成事件

7.2 合成事件与原生DOM事件的区别

7.2.1 注册事件监听函数的方式不同

7.2.2 特定事件的行为不同

7.2.3 实际注册的目标DOM元素不同

7.3 合成事件的冒泡与捕获

7.4 受控组件

7.5 在React中使用原生DOM事件

7.5.1 使用原生DOM事件的典型场景

7.5.2 项目实现:使用原生DOM事件实现Click-outside

7.6 小结

第8章 组件样式

8.1 现代前端样式开发面临的挑战

8.2 React应用中开发样式的方案

8.2.1 内联样式

8.2.2 CSS Modules

8.2.3 CSS-in-JS

8.2.4 原子化CSS

8.3 如何选择合适的CSS方案

8.4 项目实现:为oh-my-chat实现CSS组件化

8.4.1 技术选型:Linaria框架

8.4.2 Linaria框架的安装和基本用法

8.4.3 嵌套选择器

8.4.4 在样式中使用组件数据

8.5 AI辅助:修改组件样式

8.5 小结

第二部分 React进阶

第9章 生命周期与虚拟DOM

9.1 React的生命周期

9.1.1 React更新过程

9.1.2 组件生命周期

9.1.3 副作用的生命周期

9.2 虚拟DOM

9.2.1 什么是虚拟DOM

9.2.2 真实DOM有什么问题

9.3 协调

9.3.1 Diffing算法

9.3.2 触发协调的场景

9.3.3 什么是Fiber协调引擎

9.3.4 Fiber中的重要概念和模型

9.3.5 协调过程是怎样的

9.4 小结

第10章 应用状态管理

10.1 什么是应用状态管理

10.2 不可变数据

10.2.1 什么是不可变数据

10.2.2 不可变数据在React中的作用

10.3 不可变数据的实现

10.3.1 手动实现

10.3.2 可持久化数据结构和Immutable.js

10.3.3 如何解决原理和直觉的矛盾

10.3.4 在React中使用Immer

10.4 再谈React应用状态

10.4.1 React应用中的状态分类

10.4.2 全局状态与局部状态

10.4.3 状态Hook:useReducer

10.5 状态管理框架Zustand

10.5.1 何时引入独立的状态管理框架

10.5.2 Zustand简介

10.5.3 利用Immer在Zustand中操作不可变数据

10.5.4 项目实现:利用Zustand + Immer共享状态数据

10.5.5 项目实现:利用Zustand + Immer实现修改和删除联系人

10.5.6 可否混用React内建state和Zustand

10.6 小结

第11章 优化性能与用户体验

11.1 性能优化的时机与思路

11.1.1 不要过早做性能优化

11.1.2 应用性能问题的表现

11.1.3 定位性能问题的根源

11.2 React组件的性能优化

11.2.1 利用性能优化Hook:useMemo缓存计算结果

11.2.2 利用React纯组件避免不必要的渲染

11.2.3 利用性能优化Hook:useCallback避免纯组件失效

11.2.4 区分低优先级的更新:startTransition和useTransition

11.3 React应用的整体性能优化

11.3.1 为生产环境构建

11.3.2 代码分割

11.4 AI辅助:分析React性能问题

11.5 AI辅助:分析React报错信息

11.6 小结

第12章 可扩展的React代码

12.1 React代码的分解和抽象

12.1.1 React应用代码中的抽象

12.1.2 项目实现:自定义Hooks

12.1.3 组件组合

12.2 可复用的自定义Hooks

12.3 可复用的React组件

12.3.1 项目实现:抽取公共组件

12.3.2 项目实现:在组件中暴露DOM元素

12.3.3 高阶组件

12.3.4 React组件库

12.4 可扩展的代码目录结构

12.4.1 典型的React项目文件目录结构

12.4.2 项目实现:大中型React项目推荐的文件目录结构

12.4.3 项目实现:模块导入路径过长怎么办

12.5 AI辅助:代码审查

12.6 小结

第三部分 Web应用开发

第13章 前端路由

13.1 前端路由简介

13.1.1 什么是前端路由

13.1.2 前端路由与传统后端路由的区别

13.2 利用React Router实现React前端路由

13.2.1 React Router基本用法

13.2.2 项目实现:为oh-my-chat加入前端路由

13.3 React代码分割和懒加载

13.3.1 React的代码分割

13.3.2 利用React.lazy和Suspense进行懒加载

13.3.3 利用React Router进行懒加载

13.4 小结

第14章 表单处理

14.1 表单处理的要素

14.2 表单的数据绑定

14.2.1 双向数据绑定

14.2.2 单向数据绑定

14.2.3 操作原生表单控件DOM

14.2.4 针对整个表单的批量数据绑定

14.3 表单验证

14.4 表单提交和错误处理

14.5 非受控组件与受控组件的区别

14.6 React 19新API:Form Actions

14.6.1 React 19中的Action

14.6.2 React 19新Hook:useFormStatus

14.6.3 React 19新Hook:useActionState

14.6.4 React 19新Hook:useOptimistic

14.7 基于React Hook Form开发表单

14.7.1 React Hook Form的基本用法

14.7.2 项目实现:用React Hook Form实现联系人表单

14.8 小结

第15章 与服务器端通信

15.1 与服务器端通信的要点

15.1.1 服务器端通信的异步性

15.1.2 HTTP请求的数据格式

15.1.3 认证授权

15.1.4 错误处理

15.1.5 缓存HTTP请求

15.1.6 安全性

15.2 在React中实现与服务器端通信

15.2.1 使用浏览器标准fetch API

15.2.2 使用开源网络请求库Axios

15.3 React 19:新use API

15.3.1 React 19新API:use(Promise)

15.3.2 React 19新API:use(Context)

15.4 异步状态管理库React Query

15.4.1 什么是异步状态管理

15.4.2 项目实现:使用React Query缓存对话列表的网络请求

15.4.3 项目实现:使用React Query变更对话列表数据

15.4.4 React Query的其他功能

15.5 小结

第16章 质量保证

16.1 前端项目的质量保证

16.1.1 质量保证与软件测试的区别与联系

16.1.2 人工测试与自动化测试

16.1.3 前端开发者应该了解的测试金字塔

16.2 React项目的端到端测试

16.2.1 使用Playwright创建端到端测试项目

16.2.2 项目实现:设计端到端测试用例

16.2.3 项目实现:使用Playwright开发端到端测试用例

16.2.4 项目实现:提升Playwright测试用例的可维护性

16.2.5 其他端到端测试工具

16.3 React单元测试

16.3.1 React单元测试的范围和目标

16.3.2 项目实现:用Jest + RTL编写单元测试

16.3.3 项目实现:为oh-my-chat的React组件编写单元测试

16.4 AI辅助:生成测试代码

16.5 小结

第17章 工程化与架构

17.1 配置React项目

17.1.1 React项目脚手架

17.1.2 构建与转译

17.1.3 静态代码检查与格式化

17.1.4 代码自动补全

17.1.5 自动化测试与代码覆盖率统计

17.2 使用TypeScript语言开发React项目

17.2.1 什么是TypeScript

17.2.2 项目实现:在React项目中使用TypeScript

17.2.3 项目实现:用TypeScript定义组件props类型

17.2.4 用TypeScript定义Hooks类型

17.2.5 在React项目中使用TypeScript的建议

17.3 部署React项目

17.3.1 部署构建后的静态资源文件

17.3.2 CI/CD持续集成与交付

17.4 线上监控

17.5 灵活的React架构

17.5.1 CSR、SSR与SSG

17.5.2 基于React的Web开发框架Next.js

17.6 对React未来的展望

17.7 AI辅助:前端开发的其他环节

17.8 小结

第18章 AI聊天机器人

18.1 项目实现:安装Ollama

18.2 项目实现:基于LangChain实现聊天机器人功能

18.2.1 项目实现:基础的机器人回复

18.2.2 项目实现:流式对话

18.2.3 项目实现:多轮对话

18.3 小结

累计评论(条) 个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部