本书由一个团队编写而成,这个团队的成员都是一些经验丰富且专注于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。在这之前,他开发过PHPWeb 服务,也为Final Cut Pro 和Motion 写过插件。他以能够把艺术和代码结合到一起为乐。他的网名是@bejonbee。他自诩是一个热衷阅读的人,喜欢摄影,并且以超出妻子的日常期望为自己的目标。
Frankie Bagnardi 是一位高级前端工程师,为多种不同的客户端创造用户体验。在业余时间里,他会在StackOverflow(FakeRainBrigand)和IRC(GreenJello)上回答问题,或者开发一些小项目。你可以通过f.bagnardi@gmail.com 联系他。
推荐序1 . . . . . . . iii
推荐序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
定义一个自定义组件10
使用动态值11
子节点12
JSX 与HTML 有何不同13
属性13
条件判断14
非DOM 属性15
事件17
注释18
特殊属性19
样式19
没有JSX 的React 19
创建React 元素20
简写21
延伸阅读及参考引用21
JSX 官方规范22
第3 章组件的生命周期. . . . . . . . . . . . . . . . . 23
生命周期方法23
实例化23
存在期24
销毁& 清理期24
实例化24
getDefaultProps 24
getInitialState 25
componentWillMount 25
render 25
componentDidMount 25
存在期26
componentWillReceiveProps 26
shouldComponentUpdate 27
componentWillUpdate 28
componentDidUpdate 28
销毁& 清理期28
componentWillUnmount 28
反模式:把计算后的值赋给state 28
总结30
第4 章数据流. 31
Props 31
PropTypes 33
getDefaultProps 33
State 34
放在state 和props 的各是哪些部分35
总结35
第5 章事件处理. . . . . . . . . . . . . . . . . . . . . . . . 36
绑定事件处理器36
事件和状态37
根据状态进行渲染38
更新状态40
事件对象42
总结43
第6 章组件的复合. . . . . . . . . . . . . . . . . . . . . . 44
扩展HTML 44
组件复合的例子45
组装HTML 45
追踪状态47
整合到父组件当中48
父组件、子组件关系50
总结52
第7 章mixin . . 53
什么是mixin 53
总结56
第8 章DOM 操作. . . . . . . . . . . . . . . . . . . . . . . 57
访问受控的DOM 节点57
整合非React 类库59
侵入式插件61
总结63
第9 章表单. . . 64
无约束的组件65
约束组件66
表单事件68
Label 68
文本框和Select 69
复选框和单选框71
表单元素的name 属性73
多个表单元素与change 处理器75
自定义表单组件79
Focus 83
可用性83
把要求传达清楚83
不断地反馈84
迅速响应84
符合用户的预期84
可访问85
减少用户的输入85
总结86
第10 章动画. . 87
CSS 渐变组87
给渐变class 添加样式88
渐变生命周期89
使用渐变组的隐患89
间隔渲染89
使用requestAnimationFrame 实现间隔渲染90
使用setTimeout 实现间隔渲染91
总结92
第11 章性能优化. . . . . . . . . . . . . . . . . . . . . . . 93
shouldComponentUpdate 93
不可变性辅助插件95
深入调查拖慢你应用的部分96
键(key) 97
总结98
第12 章服务端渲染. . . . . . . . . . . . . . . . . . . . . 99
渲染函数100
React.renderToString 100
React.renderToStaticMarkup 100
用React.renderToString 还是用React.renderToStaticMarkup 101
服务端组件生命周期102
设计组件102
异步状态104
同构路由106
单例、实例及上下文107
总结107
第13 章周边类库. . . . . . . . . . . . . . . . . . . . . . . 108
Jest 108
设置109
自动模拟依赖109
手动模拟依赖111
Immutable.js 113
Flux 114
总结115
第14 章开发工具. . . . . . . . . . . . . . . . . . . . . . . 116
构建工具116
Browserify 117
建立一个Browserify 项目117
对代码做出修改118
Watchify 119
构建119
Webpack 119
Webpack 与React 120
调试工具122
基础工具123
总结124
第15 章测试. . 125
上手125
测试的类型126
工具126
第一个测试用例:render 测试127
模拟组件132
函数监视138
监视函数被调用141
模拟事件146
测试中的组件查找器149
mixin 测试152
直接测试mixin 153
把mixin 包含在虚拟组件中进行测试156
共享行为的用例159
渲染到
中164服务端测试168
浏览器自动化测试174
启动服务器179
总结180
第16 章架构模式. . . . . . . . . . . . . . . . . . . . . . . 181
路由182
Backbone.Router 182
Aviator 183
react-router 185
Om (ClojureScript) 186
Flux 187
数据流187
Flux 各个部分188
Dispatcher 188
Action 189
Store 190
控制视图191
管理多个Store 192
更新Dispatcher 192
注册依赖行为193
总结194
第17 章其他使用场景. . . . . . . . . . . . . . . . . . 195
桌面应用195
游戏197
电子邮件202
绘图208
总结210
《天文学简史(中文版)》内容简介:史前的农夫利用天上的星辰判断季节的更替;古希腊天文学与古巴比伦天文学合流;17世纪,牛顿提
《恒温教养》内容简介:在教养孩子的过程中,面对孩子的大哭大叫、无理取闹,无助、心累、崩溃正席卷而来,因此父母时常会感到焦虑
远程接入网络疑难解析 本书特色 本书适用面向日常工作需要的网络管理者或者管理员、网络或咨询工程师以及远程接入咨询师。同时本书适合为希望获得CCNP和CCIE证书...
《儿童时间管理效能手册》内容简介:为什么孩子总是发脾气?为什么孩子什么话都不愿跟家长说?为什么孩子对自己的事情负不起责任来
《写给未来的自己(第2季)》内容简介:本书收录了2018届“北大培文杯”全国青少年英语创意写作大赛的优秀作品。“北大培文杯”全国
《AdobeAfterEffectsCS4高手之路》由Adobe中国资深专家李涛先生倾力编写,是一本讲解AfterEffects影视动画技术的案例书。全书共分
《浙东唐诗之路学术文化编年史》内容简介:浙东,自晋代起渐成为人文荟萃之地,源远流长的山水诗在此滋生,与之有连带关系的书法、
工业设计人机工程-第2版 本书特色 《工业设计人机工程(第2版)》:普通高等教育“十一五”国家级规划教材工业设计人机工程-第2版 内容简介 本书为普通高等教育“...
本书全面介绍了交互设计的基本理论,从界面设计、交互原理到用户体验,囊括了所有专业知识点,并通过列举大量具有开创性的交互设
编程珠玑-第2版-修订版 本书特色 本书是计算机科学方面的经典名著。书的内容围绕程序设计人员面对的一系列实际问题展开。作者jon bentley 以其独有的洞察...
Withliterallyhundredsofexamplesandthousandsoflinesofcode,theJavaServletandJSPCoo...
Thelatestscientificfindingsindicatethatemotionsplayanessentialroleindecisionmaki...
《随机信号分析基础(第3版)》为普通高等教育“十一五”国家级规划教材。《随机信号分析基础(第3版)》主要从工程应用的角度讨论随
你是否好奇那些艺术家们的脑子里都想些什么?《手绘的创意日志》的作者珍妮弗·纽带领读者开始一场精神旅程,进入日志作者的个人
《Python编程:从入门到实践》内容简介:本书是一本针对所有层次的Python读者而作的Python入门书。全书分两部分:第一部分介绍用Py
文明以止,人文也。硅谷的成功,不完全在人或钱,也不在科技,而在整体的生态。硅谷创投家郑志凯先生带领你领略硅谷的精髓。本书以
本书系Brooks/Cole出版公司(ThomsonLearning出版集团的下属子公司)2000年推出的BookWare系列丛书(BookWareCompan...
《自我革命:新时代党的建设伟大方略》内容简介:本书坚持以习近平新时代中国特色社会主义思想为指导,紧紧围绕新时代全面从严管党
《格林文集:斯坦布尔列车》内容简介:在开往斯坦布尔的东方快车上,犹太商人迈亚特、政治流亡者津纳、歌舞演员科洛尔、英国记者梅
《他山之石》内容简介:鲁迅是享誉世界的小说家,但他的经典之作并非无源之水、无本之木。鲁迅明确说过自己“所仰仗的全在先前看过