基本信息
【插图】

编辑推荐
全面深入讲述React技术栈的第 1 本原创图书,Strikingly联合创始人及CTO郭达峰作序推荐,pure render专栏主创倾力打造
覆盖React、Flux、Redux及可视化,帮助开发者在实践中深入理解技术和源码
前端组件化主流解决方案,一本书玩转React“全家桶”
内容简介
作译者
目录
1.1 React 简介 1
1.1.1 专注视图层 1
1.1.2 Virtual DOM 1
1.1.3 函数式编程 2
1.2 JSX 语法 3
1.2.1 JSX 的由来 3
1.2.2 JSX 基本语法 7
1.3 React 组件 11
1.3.1 组件的演变 11
1.3.2 React 组件的构建 18
1.4 React 数据流 21
1.4.1 state 21
1.4.2 props 23
1.5 React 生命周期 29
1.5.1 挂载或卸载过程 29
1.5.2 数据更新过程 30
1.5.3 整体流程 33
1.6 React 与 DOM 34
1.6.1 ReactDOM 35
前言
前端高速发展十余年,我们看到了浏览器厂商的竞争,经历了标准库的竞争,也经历了短短几年 ECMAScript 标准的迭代。到今天,JavaScript 以完全不同的方式呈现出来。
这是最好的时代,这是最坏的时代,这是智慧的时代,这是愚蠢的时代;这是信仰的时期,这是怀疑的时期;这是光明的季节,这是黑暗的季节;这是希望之春,这是失望之冬。
这是对前端发展这些年最恰当的概括。整个互联网应用经历了从轻客户端到富客户端的变化,前端应用的规模变得越来越大,交互越来越复杂。在近几年,前端工程用简单的方法库已经不能维系应用的复杂度,需要使用一种框架的思想去构建应用。因此,我们看到 MVC、MVVM 这些 B/S 或 C/S 中常见的分层模型都出现在前端开发的过程中。与其说不断在创新,还不如说前端在学习之前应用端已经积累下来的浑厚体系。
在发展的过程中,出现了大量优秀的框架,比如 Backbone、Angular、Knockout、Ember 这些框架大都应用了MV* 的理念,把数据与视图分离。而就在这样纷繁复杂的时期,2013 年 Facebook 发布了名为React的前端库。
从表现上看,React 被大部分人理解成 View 库。然而,从它的功能上看,它远远复杂于 View 的承载。它的出现可以说是灵光一现,我记得曾经有人说过,Facebook 发布的技术产品总是包含伟大的思想。的确,从此,Virtual DOM、服务端渲染,甚至 power native apps,这些概念开始引发一轮新的思考。
从官方描述中,创造React 是为了构建随着时间数据不断变化的大规模应用程序。正如它的描述一样,React 结合了效率不低的Virtual DOM渲染技术,让构建可组合的组件的思路可行。我们只要关注组件自身的逻辑、复用及测试,就可以把大型应用程序玩得游刃有余。
在0.13版本之后,React 也慢慢趋于稳定,越来越多的前端工程师愿意选择它作为应用开发的首选,国内也有很多应用开始用它作为主架构的核心库。
在未来,React 必然不过是一块小石头沉入水底,但它溅起的涟漪影响了无数的前端开发的思维,影响了无数应用的构建。对于它来说,这些就是它的成就。成就 JavaScript 的繁荣,成就前端标准更快地推进。
本书目的
本书希望从实践起步,以深刻的角度去解读 React 这个库给前端界带来的革命性变化。
目前,不论在国内,还是在国外,已经有一些入门的 React 图书,它们大多在介绍基本概念,那些内容可以让你方便地进入 React 世界。但本书除了详细阐述基本概念外,还会帮助你从了解 React 到熟悉其原理,从探索 Flux 应用架构的思想到精通 Redux 应用架构,帮助你思考 React 给前端界带来的价值。React 今天是一种思想,希望通过解读它,能够让读者有自学的能力。
阅读建议
本书从几个维度介绍了React。一是作为 View 库,它怎么实现组件化,以及它背后的实现原理。二是扩展到 Flux 应用架构及重要的衍生品 Redux,它们怎么与 React 结合做应用开发。三是对它与 server 的碰撞产生的一些思考。四是讲述它在可视化方面有着怎样的优势与劣势。
下面是各章的详细介绍。
第1章这一章从 React 最基本的概念与 API 讲起,让读者熟悉 React 的编码过程。
第2章这一章更深入到 React 的方方面面,并从一个具体实例的实现到自动化测试过程来讲述React组件化的过程和思路。
第3章这一章深入到React源码,介绍了 React背后的实现原理,包括Virtual DOM、diff
算法到生命周期的管理,以及setState机制。
第4章这一章介绍了React官方应用架构组合Flux,从讲解Flux的基本概念及其与MV*架构的不同开始,解读Flux的核心思想。
序言
React 是目前前端工程化最前沿的技术。2004 年 Gmail的推出,让大家猛然发现,单页应用的互动也可以如此流畅。2010年,前端单页应用框架接踵而至,Backbone、Knockout、Angular,各领风骚。2013年,React 横空出世,独树一帜:单向绑定、声明式UI,大大简化了大型应用的构建。Strikingly 接触到 React 之后不久,就开始用 React 重构前端。
当时我想,2013 年或许会因为 React 的出现,成为前端社区的分水岭。今天回看,确实如此。
毋庸置疑,React 已经是前端社区里程碑式的技术。React 及其生态圈不断提出前端工程化解决方案,引领潮流。在过去一两年里,React 也是各种技术交流分享会里炙手可热的议题。
React 之所以流行,在于它平衡了函数式编程的约束与工程师的实用主义。
React 从函数式编程社区中借鉴了许多约定:把 DOM 当成纯函数,不仅免去了烦琐的手动 DOM 操作,还开启了多平台渲染的美丽新世界;在此之上,React 社区进一步强调不可变性(immutability)和单向数据流。这几个约定将原本很复杂的程序化简,加强了程序的可预测性。
React 也有实用主义的一面,它不强迫工程师只用函数式,而是提供了简单粗暴的手段,方便你实现各种功能——想直接操作 DOM 也可以,想双向绑定也没问题。函数式约定搭配实用主义,让我不禁想起 Facebook 一直倡导的黑客之道:Done is better than perfect。
React 还是一门年轻的技术,网上能学习的材料也比较零散。本书由浅到深,手把手地带领读者了解 React 核心思想和实现机制。因为 React 受到了很多关注,社区里出现了各种建立大型 React 应用的方案。本书总结了目前社区里的最佳实践,方便读者立刻在实战中使用。
郭达峰
Strikingly 联合创始人及 CTO
媒体评论
——阮一峰,蚂蚁金服技术专家,国内技术圈知名博主,《ES 6标准入门(第2版)》作者
React从诞生起就颠覆了诸多传统前端开发的“铁律”,这种破旧立新开启了前端开发全新的时代。它的用法和理念,代表了现在和未来几年前端技术的潮流风向。如果不想落伍,进行系统学习。实践出真知,从牛人的实践中收获自己的真知,恐怕是捷径。这是我看到的React中文原创著作,读来倍感亲切。
——张克军,豆瓣前端专家,国内技术圈知名博主,前端布道师
本书内容翔实,一扫“文档说明书”之风,有大量作者的实战经验。由浅入深,无论你是 React 初学者,还是进阶人士,本书都值得一读!
——寸志,陆金所前端架构师,《前端外刊评论》发起人