深入浅出React和Redux
上QQ阅读APP看书,第一时间看更新

前言

互联网技术发展一日千里,网页应用开发技术也不例外,这本书介绍的是在这一领域备受瞩目的两个工具React和Redux。

自从jQuery问世以来,它就在网页开发领域占据统治地位,同时,还有许多MVC框架如雨后春笋般出现。但是业界也普遍发现,jQuery和各种MVC框架在开发大型复杂应用时,依然面临很多难以克服的困难。

当2014年Facebook推出React时,给整个业界带来全新的看待网页应用开发的方式,和React一同问世的Flux,也克服传统MVC框架的很多弊病。技术在不断发展,在2015年,Flux的一个变体Redux出现,进一步优化了Flux的功能。

React和Redux的结合,让网页开发的方式耳目一新,写这本书的初衷,是为了让国内读者能够一睹React和Redux的内在原理并深入实践。

在这里深入介绍React和Redux,绝不是贬抑其他前端框架,事实上,开发者应该接触不同的开发模式,才能融会贯通,对技术有一个全面的认识,若要掌握某种技术,就要深入学习,这就是本书的目的。对React和Redux的了解不要只是停留在能用的表面功夫,重要的是理解内在的原理。

本书的内容

希望读者把阅读这本书的过程当做一个旅程,由浅入深地了解React和Redux,如果你对React和Redux技术已经有一些了解,可以直接跳到感兴趣的章节。本书包括12章,如下所示。

第1章,React新的前端思维方式。实际操作快速创建一个React应用,介绍和传统网页开发相比React应用开发的独特方式。

第2章,设计高质量的React组件。React提倡基于组件的设计,这一章通过开发一个ControlPanel组件的实践,介绍了开发高质量React组件的原则,详细介绍React组件的生命周期和数据管理方式。

第3章,从Flux到Redux。通过Flux介绍了单向数据流的框架模式,由此引出比Flux更优秀的Redux框架,通过用不同框架实现ControlPanel应用可以比较框架的优劣。

第4章,模块化React和Redux应用。这一章通过开发一个Todo应用介绍将React和Redux结合的方法。

第5章,React组件的性能优化。通过对Todo应用的性能优化,介绍提高React组件渲染性的方法,以及提高从Store获取数据性能的方法。

第6章,React高级组件。介绍高阶组件和“以函数为子组件”的模式。

第7章,Redux和服务器通信。通过开发一个天气信息应用的实践,介绍应如何在React和Redux的环境中实现与服务器的通信。

第8章,单元测试。介绍针对React和Redux的单元测试技巧。

第9章,扩展Redux。介绍创建中间件和Store Enhancer的技巧。

第10章,动画。介绍在React中通过ReactTransitionGroup和React-Motion库实现动画的技巧。

第11章,多页面应用。介绍如何创建多页面路由,以及为了提高网页装载性能的代码分片技巧。

第12章,同构。创建让React组件能够在服务器端和浏览器端渲染的技术。

本书的目标读者

阅读这本书只需要一些基本的JavaScript、HTML和CSS知识,了解网页应用的工作原理,就足够具备体验React和Redux这种全新的开发方式。

如果你熟悉传统的jQuery应用开发,那么通过阅读本书会让你发现不一样的应用构建模式;如果你之前学习过Angular.js或者Vue.js,那么对理解React和Redux的工作机理很有帮助,同时有机会体验同样一种思想的不同实现之道。

即使你对React和Redux已经有了一定认识,相信阅读此书也不会让你觉得是浪费时间,因为书中不只是介绍“如何去做”,更多地还解释了“为什么这么做”,相信阅读此书会让你对React和Redux会有更多更深的认识。

源代码

本书每章都附带大量的实际代码例子,因为篇幅所限,在书中不可能包含所有代码,读者可以在Github(网址github.com/mocheng/react-and-redux)上找到所有代码,代码按照所属章节内容组织。

如果读者发现代码或者书中的错误,可以直接在上面网址对应的代码库中提交问题,请不吝斧正。

致谢

首先要感谢我的家人,没有他们的帮助和理解,这本书不可能完成。

感谢Hulu公司,本书中的很多内容都是和Hulu的研发团队协同合作中得到的体会。

感谢机械工业出版社的吴怡编辑,因为她的鼓励和帮助,这本书才得以问世。

最后要感谢React和Redux社区,因为千千万万开发者以开放的心态贡献代码和积极讨论,前端开发技术才获得巨大的飞跃,这个世界才变得更加美好。