标签
内容简介
《深入浅出React和Redux》是资深架构师程墨撰写的一本前端工程技术书,2017年由机械工业出版社出版。全书共12章,围绕“用React和Redux构建现代化前端项目”这一主线,由浅入深地讲解了React的思维方式、组件设计、Redux数据流管理,以及React与Redux结合开发完整应用的工程方法。 开篇从初始化一个React项目入手,借助JSX、Virtual DOM等概念说明React与jQuery式开发在思路上的差异;随后讲解prop与state的区别、组件的装载、更新与卸载这一完整生命周期,以及如何设计易于维护的组件。在数据流部分,书中由Flux的不足引出Redux,介绍Redux的基本原则、容器组件与傻瓜组件的分工,以及用React-Redux把二者连接起来的问题。 实践层面,书中以内置的Todo应用为例,演练模块化的代码组织方式、状态树设计、组合reducer和开发辅助工具;同时系统讨论了组件性能优化、高阶组件与“以函数为子组件”模式、在React与Redux环境中访问服务器、异步操作(redux-thunk、Promise)、单元测试、中间件与Store Enhancer扩展、React动画、React-Router多页面路由与代码分片,以及服务器端与浏览器端共同渲染的同构方案。全书示例均基于create-react-app创建,采用ES6语法编写组件。
编辑推荐
这是一本少见的“整本书都在讲整个工程怎么做”的React入门书。它没有停留在逐个API的罗列上,而是从“React和jQuery到底差在哪”这类问题讲起:先说清Virtual DOM和组件化带来的思维转变,再讲组件应该怎样划分、prop和state该由谁持有、生命周期函数在什么时机起作用。等读者对组件有了手感,书才引出Flux的不足和Redux的三大原则,把单向数据流讲成一套可操作的工程习惯。 全书最有价值的部分是“前后打通”:它把一个Todo应用从零写到能跑,再一路加码,做性能优化、高阶组件、异步请求、单元测试、中间件扩展、动画、路由与代码分片,最后落到同构渲染。读者会看到这些技术并不是孤立的知识点,它们都是同一个应用在变大之后自然遇到的难题。作者程墨是资深架构师,书中大量判断和取舍来自实战,例如“为什么不用ref”“状态树为什么要扁平”“冗余数据为什么危险”,这些都能直接迁移到真实项目里。 需要提醒的是,本书成书于2017年,示例基于类组件、create-react-app与当时的React-Router、Redux生态,如今已不是主流写法。但它讲的组件思维、单向数据流、状态设计与同构原理并不过时,把它当作“理解React工程化的第一本书”来读,收获会大于把它当作新版查询手册。
适合谁读
适合
- 有JavaScript与ES6基础,准备系统学习React的前端开发者
- 做过jQuery或传统页面开发,想理解组件化与单向数据流的工程师
- 需要在项目中引入Redux、并管理复杂状态的中级开发者
- 想弄清前端测试、中间件、同构渲染等工程问题如何落地的人
不适合
- 完全零编程经验的读者,书中不讲解JavaScript基础语法
- 只想要最新版React Hooks与函数式组件速查手册的读者
- 以React Native移动端开发为主要目标的读者
阅读建议
- 先读第1至第3章打牢组件与Redux数据流的底子,再进入第4章的Todo应用,动手把代码敲一遍。
- 第5至第9章可以按项目需要跳读,遇到性能、异步或测试问题再回头精读对应章节。
- 书中示例基于2017年的类组件与旧版依赖,练习时可用现代脚手架重建,把类组件改写为函数组件对照理解。
- 每章末尾的小结值得单独整理成笔记,用来串联各章之间的因果关系。
出版社简介
机械工业出版社
中国 · 成立于 1950 年
机械工业出版社(China Machine Press)在科技与专业出版之外,库内图书还体现出对心理学、计算机、管理、财经与社科等方向的持续关注。心理学方面收入荣格作品及分析心理学导论,并涉及压力与健康、成瘾与疗愈等应用议题;计算机领域有《计算机程序的构造和解释(JavaScript版)》;管理与财经类包括《管理行为(原书第4版)》《不平等的代价(珍藏版)》《这次不一样:八百年金融危机史(纪念版)》;科学哲学与科学史方面则有《世界观(原书第3版)》。相关作者资源涵盖C.G.荣格、威廉·麦圭尔、索努·沙姆达萨尼、加博尔·马泰等。公开资料有限,以上仅据库内图书归纳其出版面貌。
目录
- 前言
- 第1章 React新的前端思维方式
- 1.1 初始化一个React项目
- 1.2 增加一个新的React组件(1.2.1 JSX;1.2.2 JSX是进步还是倒退)
- 1.3 分解React应用
- 1.4 React的工作方式(1.4.1 jQuery如何工作;1.4.2 React的理念;1.4.3 Virtual DOM;1.4.4 React工作方式的优点)
- 第2章 设计高质量的React组件
- 2.1 易于维护组件的设计要素
- 2.2 React组件的数据(2.2.1 prop;2.2.2 state;2.2.3 prop和state的对比)
- 2.3 组件的生命周期(装载过程、更新过程、卸载过程)
- 2.4 组件向外传递数据
- 2.5 React组件state和prop的局限
- 第3章 从Flux到Redux
- 3.1 Flux(MVC框架的缺陷、Flux应用、优势与不足)
- 3.2 Redux(基本原则、Redux实例、容器组件和傻瓜组件、组件Context、React-Redux)
- 第4章 模块化React和Redux应用
- 4.1 模块化应用要点
- 4.2 代码文件的组织方式(按角色组织、按功能组织)
- 4.3 模块接口
- 4.4 状态树的设计(一个状态节点只属于一个模块、避免冗余数据、树形结构扁平)
- 4.5 Todo应用实例(状态设计、action构造函数、组合reducer、视图、样式、不使用ref)
- 4.6 开发辅助工具(Chrome扩展包、redux-immutable-state-invariant、工具应用)
- 第5章 React组件的性能优化
- 第6章 高阶组件与以函数为子组件
- 第7章 在React和Redux中访问服务器
- 7.1 代理功能访问API;React组件访问服务器的生命周期与优缺点
- 7.2 Redux访问服务器(redux-thunk中间件、异步action、异步操作的模式与中止)
- 7.3 Redux异步操作的其他方法(如何挑选异步操作方式、利用Promise实现异步操作)
- 第8章 单元测试
- 8.1 单元测试的原则
- 8.2 单元测试环境搭建(框架、代码组织、辅助工具)
- 8.3 单元测试实例(action构造函数、异步action、reducer、无状态组件、被连接的组件)
- 第9章 扩展Redux
- 9.1 中间件(接口、使用、Promise中间件、开发原则)
- 9.2 Store Enhancer(增强器接口、增强器实例reset)
- 第10章 动画
- 10.1 动画的实现方式(CSS3方式、脚本方式)
- 10.2 ReactCSSTransitionGroup(Todo应用动画、规则)
- 10.3 React-Motion动画库(设计原则、Todo应用动画)
- 第11章 多页面应用
常见问题
这本书适合零基础学React吗?
不太适合。书中默认读者掌握JavaScript和ES6语法,会直接使用class、箭头函数、模块化等写法。零基础读者建议先补JavaScript与ES6,再读本书第1章。
书中的代码现在还能跑吗?
书出版于2017年,示例基于类组件、create-react-app及当时的React-Router、Redux版本,直接运行可能遇到依赖版本问题。建议用现代脚手架重建示例,把重点放在思路而非逐行复现。
只学React不学Redux,能读这本书吗?
可以分段阅读。第1、2章以及第5、6、10章基本围绕React本身展开,可以先读;第3、4、7、9章涉及Redux,需要时再补。作者也解释了为何大型应用引入Redux。
这本书和官方文档相比有什么不同?
官方文档偏重API与最新写法,本书胜在完整讲述一个应用如何从简单走向工程化:模块划分、状态树设计、性能优化、测试、同构等章节提供了官方文档不容易一次性讲清的整体视角。
这本书的评分和篇幅如何?
豆瓣评分约8.5分,全书约259至268页、12章,定价69元,ISBN为9787111565635,机械工业出版社2017年出版。
读者评论
查询本书
本站为索引目录:「全网查询」由您发起、在您的浏览器中运行,所列入口均指向第三方站点,请自行判断可用性。
作者简介
程墨
作者
程墨,目前公开资料有限,其生平信息如国籍、生卒年与英文名均未见明确记载。从库内收录的两部作品来看,程墨是一位专注于楚辞与古代诗词研究的作者,著有《楚辞赏析之九歌天问及九章选读》与《古典文化必读:楚辞赏析之离骚》。这两部作品均属于文学与古代诗词类别,围绕屈原作品展开赏析与选读,显示出作者对楚辞文本的细致解读兴趣。其写作偏重古典文化的普及与品读,面向希望深入了解楚辞的读者,在传统诗词赏析领域提供了可资参考的读本。