React:引领未来的用户界面开发框架
基本信息
- 原书名:Developing a React Edge:The JavaScript Library for User Interfaces
- 作者: League of Extraordinary Developers(卓越开发者联盟)
- 译者: 寸志 范洪春 杨森 陈涌
- 出版社:电子工业出版社
- ISBN:9787121259364
- 上架时间:2015-4-29
- 出版日期:2015 年5月
- 开本:16开
- 页码:210
- 版次:1-1
- 所属分类:计算机 > 软件与程序设计 > 网络编程 > javascript
编辑推荐
更多React热点内容已重版出来,搜索“React(第2版)”尝鲜购买!
身出名门,Fackbook开源巨献,一经推出,瞬间亮瞎全球攻城狮
无论传统网站还是移动开发,尤其跨终端Web,一步跟不上React,就会被远远抛开
以BAT为首的一线国内互联网企业均以快速跟进研发、实践React,下一次求职你就一定会被面到
React极有可能让撕B不止的前端社区迎来和平和宁静,无任何毒副作用、强大的多平台扩展……React新纪元来了
内容简介
作译者
Tom Hallett 是一位高级Ruby 和JavaScript 工程师,在Tout.com 工作(Tout.com 是一个实时视频平台,办公地点在旧金山)。他是jasmine-react 的作者,jasmine-react 是一个开源的类库,旨在帮助开发者使用测试框架Jasmine 测试React 应用程序。在Twitter(@tommyhallett)和Github(@tommyh)上都可以找到他。他的爱好是打水球,以及与妻子和儿子待在一起。
Richard Feldman 是旧金山教育科技公司NoRedInk 的前端工程师。他是一个函数式编程爱好者,会议发言人,还是seamlessimmutable的作者。seamless-immutable 是一个开源类库,可以提供不可变的数据结构,向后兼容普通的JavaScript 对象和数组。Richard 在Twitter 和Github 上都叫@rtfeldman。
Simon Højberg 是一个高级UI 工程师,在罗德岛普罗维登斯市的Swipely 公司工作。他是普罗维登斯市线下JS 见面会的核心组织者,之前还是波士顿创业学院的JavaScript 讲师。他一直在使用JavaScript 开发功能性的用户界面,也会开发一些像cssarrowplease.com 这样的业余项目。Simon 的Twitter 是@shojberg。
Karl Mikkelsen 是LockedOn 的一位高级PHP 和JavaScript 工程师,工作是开发外观漂亮且功能强大的房地产软件。Karl 对新技术充满热情,喜欢学习以不同的方式做事。如果你在网上(http://karlmikko.com)找不到他,那他很可能在和妻子攀岩或者在喝咖啡。
Jon Beebe 在Dave Ramsey 的数字开发团队里开发应用,专注于一些面向用户的技术,例如Web 和iOS。在这之前,他开发过PHPWeb 服务,也为Final Cut Pro 和Motion 写过插件。他以能够把艺术和代码结合到一起为乐。他的网名是@bejonbee。他自诩是一个热衷阅读的人,喜欢摄影,并且以超出妻子的日常期望为自己的目标。
Frankie Bagnardi 是一位高级前端工程师,为多种不同的客户端创造用户体验。在业余时间里,他会在StackOverflow(FakeRainBrigand)和IRC(GreenJello)上回答问题,或者开发一些小项目。你可以通过f.bagnardi@gmail.com 联系他。
目录
推荐序2 v
推荐序3 vii
前言 ix
第1 章React 简介 1
背景介绍1
本书概览3
Component 的创建和复合3
进阶4
React 工具5
React 实践5
第2 章JSX 6
什么是JSX 7
使用JSX 的好处7
更加熟悉7
更加语义化8
更加直观8
抽象化9
关注点分离9
复合组件10
前言
React 是Facebook 内部的一个JavaScript 类库,已于2013 年开源,可用于创建Web 用户交互界面。它引入了一种新的方式来处理浏览器DOM。那些需要手动更新DOM、费力地记录每一个状态的日子一去不复返了——这种老旧的方式既不具备扩展性,又很难加入新的功能,就算可以,也是冒着很大的风险。React 使用很新颖的方式解决了这些问题。你只需声明式地定义各个时间点的用户界面,而无须关心在数据变化时需要更新哪一部分DOM。在任何时间点,React 都能够以最小的DOM 修改来更新整个应用程序。
本书内容
React 引入了一些激动人心的新概念,向现有的一些最佳实践发起了挑战。本书将会带领你学习这些概念,帮助你理解它们的优势,创建具备高扩展性的单页面应用(SPA)。
React 把主要的注意力放在了应用的“视图” 部分,没有限定与服务端交互和代码组织的方式。在本书中,我们将介绍目前的一些最佳实践及配套工具,帮助你使用React 构建一个完整的应用。
本书面向的读者
为了更好地掌握本书的内容,你需要有JavaScript 和HTML 相关开发经验。倘若你做过SPA应用(什么框架不重要,Backbone.js、Angular.js 或者Ember.js 都可以)那更好,但这不是必需的。
源码和示例
一些来自示例项目问卷制作工具的代码片段会贯穿在整本书中。你可以在https://github.com/backstopmedia/bleeding-edge-sample-app上找到完整的代码。
编写过程
我们把本书当作一本虚拟的电子书编写,用一到两个月的时间快速迭代。这种方式有助于创建新鲜及时的内容,而传统书籍往往无法覆盖最新的趋势和技术。
作者
本书由一个团队编写而成,这个团队的成员都是一些经验丰富且专注于JavaScript 的开发者。
Tom Hallett 是一位高级Ruby 和JavaScript 工程师,在Tout.com 工作(Tout.com 是一个实时视频平台,办公地点在旧金山)。他是jasmine-react 的作者,jasmine-react 是一个开源的类库,旨在帮助开发者使用测试框架Jasmine 测试React 应用程序。在Twitter(@tommyhallett)和Github(@tommyh)上都可以找到他。他的爱好是打水球,以及与妻子和儿子待在一起。
Richard Feldman 是旧金山教育科技公司NoRedInk 的前端工程师。他是一个函数式编程爱好者,会议发言人,还是seamlessimmutable的作者。seamless-immutable 是一个开源类库,可以提供不可变的数据结构,向后兼容普通的JavaScript 对象和数组。Richard 在Twitter 和Github 上都叫@rtfeldman。
Simon H?jberg 是一个高级UI 工程师,在罗德岛普罗维登斯市的Swipely 公司工作。他是普罗维登斯市线下JS 见面会的核心组织者,之前还是波士顿创业学院的JavaScript 讲师。他一直在使用JavaScript 开发功能性的用户界面,也会开发一些像cssarrowplease.com 这样的业余项目。Simon 的Twitter 是@shojberg。
Karl Mikkelsen 是LockedOn 的一位高级PHP 和JavaScript 工程师,工作是开发外观漂亮且功能强大的房地产软件。Karl 对新技术充满热情,喜欢学习以不同的方式做事。如果你在网上(http://karlmikko.com)找不到他,那他很可能在和妻子攀岩或者在喝咖啡。
Jon Beebe 在Dave Ramsey 的数字开发团队里开发应用,专注于一些面向用户的技术,例如Web 和iOS。在这之前,他开发过PHP Web 服务,也为Final Cut Pro 和Motion 写过插件。他以能够把艺术和代码结合到一起为乐。他的网名是@bejonbee。他自诩是一个热衷阅读的人,喜欢摄影,并且以超出妻子的日常期望为自己的目标。
Frankie Bagnardi 是一位高级前端工程师,为多种不同的客户端创造用户体验。在业余时间里,他会在StackOverflow(FakeRainBrigand)和IRC(GreenJello)上回答问题,或者开发一些小项目。你可以通过f.bagnardi@gmail.com 联系他。
序言
时光回溯。
2011 年我离开Google 转而加入Facebook,从事移动互联网(Mobile Web)的核心产品开发工作。
随着时间的推移,工作上逐渐取得了许多有意义的巨大进展,同仁们也都深以此为傲。然而不是所有的事情都进展得特别顺利。其中一个很大的问题与挑战就是因为HTML5 的技术限制与性能瓶颈,许多产品的开发工作受到了限制。
2012 年Facebook 公开了一件很多人深有体会却不想说出口的事实,那就是HTML5 之类的Web 技术并未成熟到能够担任产品开发工具重任的程度。在很多方面,使用原生代码(native code)开发仍然是必要的选项。
对于很多包括我在内的Mobile Web 开发者来说,这样的情况是一个让人失望却又不得不接受的事实。
2013 年年初,我离开工作两年多的移动互联网开发部门,转而投入广告部门,从事桌面富客户端(Rich App Client Application)的开发工作。
虽然Mobile Web 的进展不如预期理想,但此时在Desktop Web 方面,事情却有了有意思的变化。
当时我参与的新项目主要是要使用一种叫作React 的新平台技术,将当时广告部门的一个主要产品重构。项目的有趣之处在于,产品的视觉外观与功能将不会也不能有任何变化,但是内部执行的代码将会是以React 打造的。
由于项目的目标为实际上线且对公司营收有重要影响的产品,所以项目的挑战除了在于应用React 这门新技术之外,维持产品本身的稳定当然也是不可妥协的目标。
所幸,项目顺利达标,而同仁们也对于React 这门技术有了更丰富的经验与更强的信心。就连React 本身也快速吸收众人的回馈,快速演进。
我从事Web 前端开发工作已经十年,有幸亲身经历众多重大的技术变革与范式转移。我可以负责任也很喜悦地说,作为一门新生技术,React 及其相关工具对于从事Web 开发的人来说,将会产生巨大且革命性的影响。
虽说React 初始是为了解决Facebook 广告部门在产品开发上遇到的很多实际问题,但实际应用的层面却非常广泛。
2015 年Facebook 也开源了ReactNative,让React 能够在iOS 移动终端执行(对Android 的平台支持预计为2015 年年底)。
由于React 的特殊设计,React 消弥了客户端与服务器端的开发界线。最近的发展则更进一步衍生到Mobile Native App 与其他非传统Web(HTML+ CSS)的执行环境。
无论你是有多年经验的开发者,或者是刚入门的新人,此时选择React 都会是一个很好的选择。
React 可以解决很多传统Web 开发架构碰到的艰难问题,同时由于它是一门新生技术,开发者将更有机会掌握一门强大的开发工具,解决更深入的艰难问题并提升产品开发的质量与境地。
由于React 问世不久,相关的出版物并不多。主要的参考数据与文件都在互联网上。至于中文化的出版物就更难得了。对于有实体文字参考需求的读者来说,本书很值得参考。
作为一本入门书籍,本书提供基本但足够的范例与介绍,着重在实际的代码与操作应用,可以让读者快速学习React 的相关知识与技术,并实际打造可执行的程序。相信对于需要使用React 开发的人来说,这将会是一本不错的入门参考。
必须要补充的是,目前由于React 还在Beta 版本阶段,本书的内容主要是以v0.12 为主。目前公开的最新版本为v0.13,书中提到的API 将会略有差异,细节方面可以在它的官方网站上查询(https://facebook.github.io/react/blog/2015/02/24/streamlining-react-elements.html)。
媒体评论
--郭达峰,Strikingly 创始人
直到React Native发布,我才开始深入了解React。接触后不禁赞叹React基于Virtual DOM抽象的多平台扩展能力。更让人震惊的是,其发布时就已经在尝试这一想法(React Native、Canvas)。React很可能是引领时代的一个框架,很期待它的持续成长。
--鬼道/徐凯,天猫技术专家,《跨终端Web》作者
在前端框架和库百家争鸣的时代,React试图以独有思路来解决前端业务亟需解决的问题--JSX、Virtual DOM与Flux等都以革命性的创新去应对UI状态的变化及数据维护的复杂度,后续衍生的React Native更是让人眼前一亮。
React可想象的空间很大,让我们拭目以待。
--梁超,奇舞团导航新闻浏览器电商负责人
最早用H5开发移动端应用的Facebook,因运行效率而放弃基于H5和JS的客户端。在踩过这个大坑之后,React技术一出世就备受瞩目,风头已全面盖过所有同类技术。对于正在或想要做移动应用开发的人来说,React绝对是一门值得深入研究的技术。
-- 大漠穷秋 ,《用AngularJS开发下一代Web应用》译者
书摘
[span]推荐序1[/span]
[span]时光回溯。[/span]
[span]2011 年我离开Google 转而加入Facebook,从事移动互联网(Mobile Web)的核心产品开发工作。[/span]
[span]随着时间的推移,工作上逐渐取得了许多有意义的巨大进展,同仁们也都深以此为傲。然而不是所有的事情都进展得特别顺利。其中一个很大的问题与挑战就是因为HTML5 的技术限制与性能瓶颈,许多产品的开发工作受到了限制。[/span]
[span]2012 年Facebook 公开了一件很多人深有体会却不想说出口的事实,那就是HTML5 之类的Web 技术并未成熟到能够担任产品开发工具重任的程度。在很多方面,使用原生代码(native code)开发仍然是必要的选项。[/span]
[span]对于很多包括我在内的Mobile Web 开发者来说,这样的情况是一个让人失望却又不得不接受的事实。[/span]
[span]2013 年年初,我离开工作两年多的移动互联网开发部门,转而投入广告部门,从事桌面富客户端(Rich App Client Application)的开发工作。[/span]
[span]虽然Mobile Web 的进展不如预期理想,但此时在Desktop Web 方面,事情却有了有意思的变化。[/span]
[span]当时我参与的新项目主要是要使用一种叫作React 的新平台技术,将当时广告部门的一个主要产品重构。项目的有趣之处在于,产品的视觉外观与功能将不会也不能有任何变化,但是内部执行的代码将会是以React 打造的。[/span]
[span]由于项目的目标为实际上线且对公司营收有重要影响的产品,所以项目的挑战除了在于应用React 这门新技术之外,维持产品本身的稳定当然也是不可妥协的目标。[/span]
[span]所幸,项目顺利达标,而同仁们也对于React 这门技术有了更丰富的经验与更强的信心。就连React 本身也快速吸收众人的回馈,快速演进。[/span]
[span]我从事Web 前端开发工作已经十年,有幸亲身经历众多重大的技术变革与范式转移。我可以负责任也很喜悦地说,作为一门新生技术,React 及其相关工具对于从事Web 开发的人来说,将会产生巨大且革命性的影响。[/span]
[span]虽说React 初始是为了解决Facebook 广告部门在产品开发上遇到的很多实际问题,但实际应用的层面却非常广泛。[/span]
[span]2015 年Facebook 也开源了ReactNative,让React 能够在iOS 移动终端执行(对Android 的平台支持预计为2015 年年底)。[/span]
[span]由于React 的特殊设计,React 消弥了客户端与服务器端的开发界线。最近的发展则更进一步衍生到Mobile Native App 与其他非传统Web(HTML+ CSS)的执行环境。[/span]
[span]无论你是有多年经验的开发者,或者是刚入门的新人,此时选择React 都会是一个很好的选择。[/span]
[span]React 可以解决很多传统Web 开发架构碰到的艰难问题,同时由于它是一门新生技术,开发者将更有机会掌握一门强大的开发工具,解决更深入的艰难问题并提升产品开发的质量与境地。[/span]
[span]由于React 问世不久,相关的出版物并不多。主要的参考数据与文件都在互联网上。至于中文化的出版物就更难得了。对于有实体文字参考需求的读者来说,本书很值得参考。[/span]
[span]作为一本入门书籍,本书提供基本但足够的范例与介绍,着重在实际的代码与操作应用,可以让读者快速学习React 的相关知识与技术,并实际打造可执行的程序。相信对于需要使用React 开发的人来说,这将会是一本不错的入门参考。[/span]