React:引领未来的用户界面开发框架(DOC)

发布时间:

React:引领未来的用户界面开发框架(全球仅此一本
Facebook前端专家作序震撼前端世界有望大一统的技术趋势国内一线前端联合推荐
【不详】LeagueofExtraordinaryDevelopers(卓越开发者联盟)寸志范洪春杨森陈涌ISBN978-7-121-25936-420155月出版定价:65.0022416
编辑推荐
身出名门,Fackbook开源巨献,一经推出,瞬间亮瞎全球攻城狮
无论传统网站还是移动开发,尤其跨终端Web,一步跟不上React,就会被远远抛
BAT为首的一线国内互联网企业均以快速跟进研发、实践React,下一次求职你就一定会被面到
React极有可能让撕B不止的前端社区迎来和平和宁静,无任何毒副作用、强大的多平台扩展„„React新纪元来了
内容提要
2014年横空出世的由Facebook推出的开源框架React.js,基于VirtualDOM重新定义了用户界面的开发方式,彻底革新了大家对前端框架的认识,将PHP风格的开发方式迁移到客户端应用开发。其优势在于可以与各种类库、框架搭配使用。React:引领未来的用户界面开发框架》是这一领域的首作,由多位一线专家精心撰写,采用一个全程实例全面介绍和剖析了ReactReact.js的方方面面,适合广大前端开发者、设计人员,及所有对未来技术趋势感兴趣者阅读。
目录
推荐序1.......iii推荐序2.......v推荐序3.......vii前言...........ix
1React简介.......................1背景介绍1本书概览3
Component的创建和复合3进阶4
React工具5React实践5

2JSX....6什么是JSX7
使用JSX的好处7更加熟悉7更加语义化8更加直观8抽象化9关注点分离9复合组件10
定义一个自定义组件10使用动态值11子节点12
JSXHTML有何不同13属性13条件判断14DOM属性15事件17注释18特殊属性19样式19
没有JSXReact19创建React元素20简写21
延伸阅读及参考引用21JSX官方规范22
3章组件的生命周期.................23生命周期方法23实例化23存在期24
销毁&清理期24实例化24
getDefaultProps24getInitialState25
componentWillMount25render25
componentDidMount25存在期26
componentWillReceiveProps26shouldComponentUpdate27componentWillUpdate28componentDidUpdate28销毁&清理期28
componentWillUnmount28
反模式:把计算后的值赋给state28

总结30
4章数据流.31Props31PropTypes33
getDefaultProps33State34
放在stateprops的各是哪些部分35总结35
5章事件处理........................36绑定事件处理器36事件和状态37
根据状态进行渲染38更新状态40事件对象42总结43
6章组件的复合......................44扩展HTML44
组件复合的例子45组装HTML45追踪状态47
整合到父组件当中48父组件、子组件关系50总结52
7mixin..53什么是mixin53总结56
8DOM操作.......................57访问受控的DOM节点57整合非React类库59侵入式插件61总结63
9章表单...64无约束的组件65约束组件66表单事件68Label68
文本框和Select69复选框和单选框71
表单元素的name属性73
多个表单元素与change处理器75自定义表单组件79Focus83可用性83
把要求传达清楚83

不断地反馈84迅速响应84
符合用户的预期84可访问85
减少用户的输入85总结86
10章动画..87CSS渐变组87
给渐变class添加样式88渐变生命周期89使用渐变组的隐患89间隔渲染89
使用requestAnimationFrame实现间隔渲染90使用setTimeout实现间隔渲染91总结92
11章性能优化.......................93shouldComponentUpdate93
不可变性辅助插件95
深入调查拖慢你应用的部分96键(key97总结98
12章服务端渲染.....................99渲染函数100
React.renderToString100
React.renderToStaticMarkup100
React.renderToString还是用React.renderToStaticMarkup101服务端组件生命周期102设计组件102异步状态104同构路由106
单例、实例及上下文107总结107
13章周边类库.......................108Jest108设置109
自动模拟依赖109手动模拟依赖111Immutable.js113Flux114总结115
14章开发工具.......................116构建工具116Browserify117
建立一个Browserify项目117

对代码做出修改118Watchify119构建119Webpack119
WebpackReact120调试工具122基础工具123总结124
15章测试..125上手125
测试的类型126工具126
第一个测试用例:render测试127模拟组件132函数监视138
监视函数被调用141模拟事件146
测试中的组件查找器149mixin测试152直接测试mixin153
mixin包含在虚拟组件中进行测试156共享行为的用例159渲染到164服务端测试168
浏览器自动化测试174启动服务器179总结180
16章架构模式.......................181路由182
Backbone.Router182Aviator183react-router185
Om(ClojureScript186Flux187数据流187
Flux各个部分188Dispatcher188Action189Store190控制视图191
管理多个Store192更新Dispatcher192注册依赖行为193总结194

17章其他使用场景..................195桌面应用195游戏197电子邮件202绘图208总结210
作者简介
本书由一个团队编写而成,这个团队的成员都是一些经验丰富且专注于JavaScript的开发者。
TomHallett是一位高级RubyJavaScript工程师,在Tout.com工作(Tout.com是一个实时视频平台,办公地点在旧金山)。他是jasmine-react的作者,jasmine-react是一个开源的类库,旨在帮助开发者使用测试框架Jasmine测试React应用程序。在Twitter@tommyhallett)和Github@tommyh)上都可以找到他。他的爱好是打水球,以及与妻子和儿子待在一起。
RichardFeldman是旧金山教育科技公司NoRedInk的前端工程师。他是一个函数式编程爱好者,会议发言人,还是seamlessimmutable的作者。seamless-immutable是一个开源类库,可以提供不可变的数据结构,向后兼容普通的JavaScript对象和数组。RichardTwitterGithub上都叫@rtfeldman
SimonH?jberg是一个高级UI工程师,在罗德岛普罗维登斯市的Swipely公司工作。是普罗维登斯市线下JS见面会的核心组织者,之前还是波士顿创业学院的JavaScript讲师。他一直在使用JavaScript开发功能性的用户界面,也会开发一些像cssarrowplease.com这样的业余项目。SimonTwitter@shojberg
KarlMikkelsenLockedOn的一位高级PHPJavaScript工程师,工作是开发外观漂亮且功能强大的房地产软件。Karl对新技术充满热情,喜欢学习以不同的方式做事。如果你在网上(http://karlmikko.com)找不到他,那他很可能在和妻子攀岩或者在喝咖啡。
JonBeebeDaveRamsey的数字开发团队里开发应用,专注于一些面向用户的技术,例如WebiOS。在这之前,他开发过PHPWeb服务,也为FinalCutProMotion写过插件。他以能够把艺术和代码结合到一起为乐。他的网名是@bejonbee。他自诩是一个热衷阅读的人,喜欢摄影,并且以超出妻子的日常期望为自己的目标。
FrankieBagnardi是一位高级前端工程师,为多种不同的客户端创造用户体验。在业余时间里,他会在StackOverflowFakeRainBrigand)和IRCGreenJello)上回答问题,或者开发一些小项目。你可以通过f.bagnardi@gmail.com联系他。
媒体评论
在前端社区里程碑式的2004年,Gmail带来了服务端渲染网页之外的原生应用级别体验,让nativelike网站成为开发者追逐的方向,BackboneAngular等开源框架应运而生,新的性能及SEO问题接踵而来,Twitter甚至重回服务器渲染方案。不同于其他开源框架,React.js并不会引入任何新的问题。几乎没有犹豫,我们开始使用React.js来重构Strikingly2014年,又是里程碑式的一年。
——郭达峰,Strikingly创始人

直到ReactNative发布,我才开始深入了解React接触后不禁赞叹React基于VirtualDOM

抽象的多平台扩展能力。更让人震惊的是,其发布时就已经在尝试这一想法(ReactNativeCanvasReact很可能是引领时代的一个框架,很期待它的持续成长。
——鬼道/徐凯,天猫技术专家,《跨终端Web》作者
在前端框架和库百家争鸣的时代,React试图以独有思路来解决前端业务亟需解决的问题——JSXVirtualDOMFlux等都以革命性的创新去应对UI状态的变化及数据维护的复杂度,后续衍生的ReactNative更是让人眼前一亮。
React可想象的空间很大,让我们拭目以待。
——梁超,奇舞团导航新闻浏览器电商负责人
最早用H5开发移动端应用的Facebook,因运行效率而放弃基于H5JS的客户端。在踩过这个大坑之后,React技术一出世就备受瞩目,风头已全面盖过所有同类技术。对于正在或想要做移动应用开发的人来说,React绝对是一门值得深入研究的技术。
——大漠穷秋《用AngularJS开发下一代Web应用》译者
前言
React是什么,为什么要使用它
ReactFacebook内部的一个JavaScript类库,已于2013年开源,可用于创建Web户交互界面。它引入了一种新的方式来处理浏览器DOM。那些需要手动更新DOM、费力地记录每一个状态的日子一去不复返了——这种老旧的方式既不具备扩展性,又很难加入新的功能,就算可以,也是冒着很大的风险。React使用很新颖的方式解决了这些问题。你只需声明式地定义各个时间点的用户界面,而无须关心在数据变化时需要更新哪一部分DOM在任何时间点,React都能够以最小的DOM修改来更新整个应用程序。
本书内容
React引入了一些激动人心的新概念,向现有的一些最佳实践发起了挑战。本书将会带领你学习这些概念,帮助你理解它们的优势,创建具备高扩展性的单页面应用(SPA
React把主要的注意力放在了应用的“视图”部分,没有限定与服务端交互和代码组织的方式。在本书中,我们将介绍目前的一些最佳实践及配套工具,帮助你使用React构建一个完整的应用。
本书面向的读者
为了更好地掌握本书的内容,你需要有JavaScriptHTML相关开发经验。倘若你做过SPA应用(什么框架不重要,Backbone.jsAngular.js或者Ember.js都可以)那更好,但这不是必需的。
源码和示例
穿https://github.com/backstopmedia/bleeding-edge-sample-app上找到完整的代码。
编写过程
我们把本书当作一本虚拟的电子书编写,用一到两个月的时间快速迭代。这种方式有助于创建新鲜及时的内容,而传统书籍往往无法覆盖最新的趋势和技术。
作者
本书由一个团队编写而成,这个团队的成员都是一些经验丰富且专注于JavaScript的开发者。
TomHallett是一位高级RubyJavaScript工程师,在Tout.com工作(Tout.com是一个实时视频平台,办公地点在旧金山)。他是jasmine-react的作者,jasmine-react是一个开

源的类库,旨在帮助开发者使用测试框架Jasmine测试React应用程序。在Twitter@tommyhallett)和Github@tommyh)上都可以找到他。他的爱好是打水球,以及与妻子和儿子待在一起。
RichardFeldman是旧金山教育科技公司NoRedInk的前端工程师。他是一个函数式编程爱好者,会议发言人,还是seamlessimmutable的作者。seamless-immutable是一个开源类库,可以提供不可变的数据结构,向后兼容普通的JavaScript对象和数组。RichardTwitterGithub上都叫@rtfeldman
SimonHøjberg是一个高级UI工程师,在罗德岛普罗维登斯市的Swipely公司工作。是普罗维登斯市线下JS见面会的核心组织者,之前还是波士顿创业学院的JavaScript讲师。他一直在使用JavaScript开发功能性的用户界面,也会开发一些像cssarrowplease.com这样的业余项目。SimonTwitter@shojberg
KarlMikkelsenLockedOn的一位高级PHPJavaScript工程师,工作是开发外观漂亮且功能强大的房地产软件。Karl对新技术充满热情,喜欢学习以不同的方式做事。如果你在网上(http://karlmikko.com)找不到他,那他很可能在和妻子攀岩或者在喝咖啡。
JonBeebeDaveRamsey的数字开发团队里开发应用,专注于一些面向用户的技术,例如WebiOS。在这之前,他开发过PHPWeb服务,也为FinalCutProMotion写过插件。他以能够把艺术和代码结合到一起为乐。他的网名是@bejonbee。他自诩是一个热衷阅读的人,喜欢摄影,并且以超出妻子的日常期望为自己的目标。
FrankieBagnardi是一位高级前端工程师,为多种不同的客户端创造用户体验。在业余时间里,他会在StackOverflowFakeRainBrigand)和IRCGreenJello)上回答问题,或者开发一些小项目。你可以通过f.bagnardi@gmail.com联系他。

React:引领未来的用户界面开发框架(DOC)

相关推荐