本书共分四部分,全面介绍如何使用React 与Redux 进行Web 开发。第一部分是基础篇,介绍React 与Redux 的基础知识;第二部分是进阶篇,通过精彩的官方示例学习React 与Redux;第三部分是拓展篇,主要学习一些优秀的第三方拓展;第四部分是实战篇,将会带领读者一步步搭建大型Web 应用程序。
本书适合熟悉JavaScript 编程,有意使用React 与Redux 搭建Web 应用的程序员学习参考。
学习使用React、Redux、Babel 和Webpack 搭建大型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,为本书提供了重要的技术支持。
书的内容不错,就是照着抄写,很多都运行不起来
怎么找不到下载资源入口,书里很多npm install 连个package.js都没有