
本书共分四部分,全面介绍如何使用React 与Redux 进行Web 开发。第一部分是基础篇,介绍React 与Redux 的基础知识;第二部分是进阶篇,通过精彩的官方示例学习React 与Redux;第三部分是拓展篇,主要学习一些优秀的第三方拓展;第四部分是实战篇,将会带领读者一步步搭建大型Web 应用程序。本书适合熟悉JavaScript 编程,有意使用React 与Redux 搭建Web 应用的程序员学习参考。
致读者 这本书是为想要用React、Redux、Babel 和Webpack 搭建Web 应用程序的程序员准备的。 与其他技术栈相比,这个技术栈(指的是React、Redux、Babel、Webpack 以及社区中众 多与此相关的优秀工具)的学习成本并不低,但是其中的智慧与思想却着实令人赞叹: 清爽的组件代码结束了满屏HTML 标签与类名的噩梦;声明式地将数据映射为界面减 少了烦琐的DOM 操作;高阶函数、管道、柯里化等函数式编程思想的运用使得复杂逻 辑的处理变得相当简单;自动化构建编译技术降低了源代码与静态资源的管理成本。随 着时间的推移,技术工具或许很快会更新换代,但是这些前端工程中的最佳实践思想却 不会轻易过时。如果你不仅想学习这些技术的使用方法,更想了解这些技术背后所包含 的思想与智慧,那么我真诚地建议你阅读本书。 阅读本书之前的准备 想要很好地理解本书的内容,你需要具备一定的Node.js 和ES2015、ES2016 基础,至少 要了解一些常见的概念,例如NPM、模块系统、常量、函数、装饰器和类。除此之外, 你最好还熟悉JavaScript 程序在服务器和浏览器环境下的调试技术。 学习本书示例代码时,大部分时间都要在命令行中进行操作。因此,你应该能够熟练使 用自己操作系统中的命令行工具。 本书附带的程序是开源的,全部上传到了GitHub。这些示例程序中的开发经验来自开 源社区和笔者自己的实践思考。我不认为这是使用React 与Redux 开发Web 应用程序的 唯一方式。你可以将其作为参考,如果有更好的想法,强烈建议你将其贡献给社区,与 更多的开发者一起交流进步。 最后要说明的是,本书因篇幅有限等原因,无法对每一项技术的讲解都做到完整而详 尽。因此,你还需要根据书中的提示和推荐,去阅读参考相应技术的官方文档。 本书的内容安排 本书分为四部分。 第一部分 基础篇 主要介绍React 与Redux 的基础知识。 ? 第1 章 简要介绍本书所要讲解的技术,包括React、Redux、Node 与Universal 渲染、Babel 及Webpack。 ? 第2 章 讲解如何在Node.js 中运行React。 ? 第3 章 讲解如何在浏览器中运行React。 ? 第4 章 介绍开发服务器和热替换技术及其实现过程。 ? 第5 章 介绍React 的创新语法:JSX。 ? 第6 章 介绍React 的数据载体:state、props 与context。 ? 第7 章 介绍React 的两个对象:ReactElement 和组件实例。 ? 第8 章 介绍Redux 的action、reducer 与store。 ? 第9 章 介绍Redux 的action 创建函数和unk 中间件。 第二部分 进阶篇 通过精彩的官方示例学习React 与Redux。 ? 第10 章 讲解如何手动将Redux 连接到React 中。 ? 第11 章 讲解如何使用react-redux 将Redux 连接到React 中。 ? 第12 章 介绍Redux 的撤销/重做和Redux 开发者工具的使用。 ? 第13 章 讲解如何在React 与Redux 的程序中编写测试。 ? 第14 章 讨论Redux 的全局状态与React 组件的内部状态。 ? 第15 章 讲解React 与Redux 中常用的几种数组处理方法。 ? 第16 章 介绍Redux 中的异步处理。 ? 第17 章 介绍如何自定义Redux 中间件。 ? 第18 章 讲解如何使用React 与Redux 实现Universal 渲染。 第三部分 拓展篇 学习一些优秀的第三方拓展。 ? 第19 章 介绍Webpack 同构工具。 ? 第20 章 介绍React Router,并通过它实现Universal 路由。 ? 第21 章 介绍多页面下的异步处理。 ? 第22 章 介绍了bootstrap-loader、PostCSS、Autoprefixer 和React-Bootstrap。 第四部分 实战篇 一步步搭建大型Web 应用程序。 ? 第23 章 介绍一个大型项目的基本结构。 ? 第24 章 使用ReduxForm 制作各种表单。 ? 第25 章 实现图表与表格。 ? 第26 章 实现用户认证。 ? 第27 章 讲解部署到Heroku 的方法,并实现持续集成。 ? 第28 章 列出其他资源。 如何使用示例代码 本书使用的示例代码可在GitHub 上获取:https://github.com/lewis617/react-redux-book 和 https://github.com/lewis617/react-redux-heroku 。 除了第1 章和第28 章外,本书每个章节都有一个示例程序。前三部分使用了短而精的 示例代码,独立地演示技术的功能。从第四部分开始,每一章的例子都会建立在前一章 例子的基础上,最后完成一个大型项目的搭建。 另外,为了方便部署到Heroku,并实现持续集成,第27 章的例子被独立到了另一个 GitHub 仓库中,也就是上述的第二个GitHub 仓库。 致谢 在写这本书的过程中,家人、朋友、领导、同事都给我了很多帮助。没有他们,我是不 可能完成本书的,在此表示由衷的感谢。 首先我要特别感谢王祖超、梁锦津、宋兵、陈仕杰、屈光宇、吕明岩,他们在本书撰写 的不同阶段审阅了书稿,并对书稿涵盖的内容和组织方式给予了建设性建议。 还要感谢电子工业出版社的许艳编辑,她对本书进行了出色平稳的编辑,并给予我无尽 的支持、建议和协助。 最后,感谢在GitHub 社区中为本书提供帮助的人: ? Dan Abramov(Redux 的作者) ? Nikolay Nikolaev(Webpack 同构工具的作者) ? Erik Rasmussen(ReduxForm 的作者) ? Eric Ferraiuolo(serialize-javascript 的贡献者) ? Mihail Diordiev(redux-devtools-extension 的作者) 他们积极热心地回复我提交的Issue,为本书提供了重要的技术支持。
第一部分 基础篇 第1章 技术简介 第2章 在Node.js 中运行React 第3章 在浏览器中运行React 第4章 开发服务器和热替换 第5章 React 的创新语法:JSX 第6章 React 的数据载体:state、props 与context 第7章 React 的两个对象:ReactElement 与组件实例 第8章 初识Redux 第9章 Action 创建函数与Redux Thunk 中间件 第二部分 进阶篇 第10章 React 与Redux 的连接:手动连接 第11章 React 与Redux 的连接:使用react-redux 连接 第12章 实现撤销/重做 第13章 测试 第14章 Redux 的全局状态与React 组件的内部状态 第15章 React 与Redux 中的数组处理 第16章 Redux 的大舞台:异步 第17章 自定义Redux 中间件 第18章 Universal 渲染 第三部分 拓展篇 第19章 Universal 渲染神器:Webpack 同构工具 第20章 多页面的实现:路由 第21章 多页面下的异步操作 第22章 使用Bootstrap 第四部分 实战篇 第23章 搭建大型项目 第24章 表单 第25章 图表与表格 第26章 用户认证 第27章 部署 第28章 其他资源
刘一奇,曾在ESRI中国,中科院计算所工作学习,现供职于360网络安全研究院,担任前端工程师,有丰富的AngularJs、React、Flask实战经验。平时热爱音乐,喜欢玩各种乐器。__eol__