React实战
上QQ阅读APP看书,第一时间看更新

关于本书

这是一本关于React的书,React是构建Web用户界面的库。本书涵盖了构建React应用所涉及的概念和API。读者将会在阅读本书的过程中使用React构建一个示例社交网络应用。这个应用将涉及各种主题,从添加动态数据到服务器端渲染。

目标读者

本书是为那些想要学习React的人写的,无论是软件工程师、工程副总裁、首席技术官(CTO)、设计师、工程经理、大学或编程训练营的学生,还是其他对React感兴趣的人,都适合阅读。读者可以根据自己的需要,将注意力集中在本书的不同部分。我在本书的第一部分先介绍React,并随着学习进展涉及更具体和高级的主题。

如果读者对JavaScript有一定了解,会有更好的阅读体验。本书大量使用了JavaScript,但不是一本关于JavaScript的书。我不会涉及JavaScript的基本概念,但如果它们与React的讨论相关,我会稍加涉及。如果读者对JavaScript基本熟练并理解如何通过JavaScript进行异步编程,那么应该能够通读示例。

本书还假定读者已经从技术角度了解构建前端Web应用的一些基础知识——了解基本浏览器API会很有帮助。我们将使用Fetch API这样的东西进行网络请求、设置和读取cookie,处理用户事件(按键、点击等),我们还会与库打交道(尽管不是非常多)。熟悉现代前端应用的基本知识会帮助读者最大限度地利用本书。

幸运的是,我已经将所有围绕工具和构建过程(这也是构建现代Web应用的必要部分)的复杂性抽象出来。项目的源代码包含了所有依赖和构建工具,因此读者应该不必为了阅读本书而去理解Webpack和Babel是如何工作的。总而言之,读者应该至少基本熟练JavaScript和一些前端Web应用概念才能充分享受阅读本书的乐趣。

路线图

本书共13章,分为3个部分。

第一部分介绍React。第1章先介绍React的核心思想。它探讨React的一些关键点,展示React如何适应使用者的开发过程,看看React能做什么以及不能做什么。第2章是“展示代码”的章。我将带领读者钻研React API并用React组件构建一个示例评论框。

第二部分开始深入React。读者将在第3章看到数据如何在React中流动,了解组件生命周期API,并在第4章开始构建Letters Social示例项目。这个项目将贯穿本书的剩余部分。第4章会介绍从应用源代码设置项目,并解释本书的剩余部分如何使用它。第5章到第9章更深入介绍React。第5章涉及表单处理,并教会读者用另一种方式来处理React中的数据和数据流。第6章延续相同的思路并基于第5章的工作成果构建更复杂的React地图展示组件。第7章和第8章处理路由这一几乎所有现代前端应用的关键部分。读者将从头构建一个路由器并设置应用处理多个页面。第8章继续介绍路由,并与Firebase平台进行集成,以便能够对用户进行身份验证。最后,第9章介绍React应用和组件的测试。

第三部分涉及更高级的React主题,并将注意力专门放在把应用转换为使用Redux。第10章和第11章介绍Redux这个状态管理方案。将应用转换为使用Redux之后,我们将在第12章探索服务器端渲染。这一章还涉及将自建路由器转换为React Router。第13章会简要地介绍React Native,另一个React项目,这一项目允许开发人员为移动设备(iOS和Android)编写JavaScript React应用。

关于代码

本书使用两组主要的源代码。对于前两章,读者将处理项目代码库之外的代码。读者将能够在CodeSandbox这个在线代码平台上运行这些代码示例。该平台负责打包代码并实时运行,因此读者不必操心搭建构建过程。

第4章将搭建项目源代码。这些源代码可以从出版社网站及以React in Action命名的本书GitHub仓库上下载,项目最终结果运行在https://social.react.sh。每章或者每几章有自己的Git分支,读者可以轻松地切换到后续章或者跟随本书的项目进程。所有源代码都在GitHub上,欢迎读者随时在GitHub上提问。

应用的JavaScript都使用Prettier进行格式化,用最新的ECMAScript规范(本书编写时是ES2017)编写。Prettier使用该规范中的概念、语法和方法。项目包含了ESLint配置,但如果读者想修改它以适应自己的需要,请随意。

软件和硬件要求

本书没有严格的硬件要求。读者可以自由使用任何类型的计算机(物理机或是像Cloud9这样的虚拟机提供者),但我不会解决开发环境差异所造成的不一致问题。如果问题出现在单独的包中,这些包的代码库或Stack Overflow是寻求帮助的最好选择。

至于软件,下面是一些要求和建议。

• 示例项目的构建过程使用Node.js,因此需要安装最新的稳定版。查看第4章了解更多Node.js搭建的信息。

• 还需要一个文本编辑器和Web浏览器,建议使用Visual Studio Code、Atom和Sublime Text。

• 将使用Chrome作为本书的主要浏览器,特别是它的开发者工具。