作者简介
安东尼·阿科马佐(Anthony Accomazzo)
现就职于Decode软件公司,作者、编辑、顾问,有多年React与React Native研究经验,曾IFTTT API平台开发。
纳特·默里(Nate Murray)
全栈,曾任IFTTT及AT&T,拥有数据挖掘和增量Web服务等方面的背景。
阿里·勒纳(Ari Lerner)
全栈,Fullstack网站联合创始人,AWS顾问。曾任AT&T软件与创新布道者,Fieldday联合创始人。
克莱·奥尔索普(Clay Allsopp)
Plaid工程主管,Propeller联合创始人,曾任LikeALittle。
大卫·古特曼(David Guttman)
AT&T研发,Rollmob、AdNet、Interlincx Media等公司的首席技术官,Superstruct创始人,也是JS.LA等JavaScript活动的组织策划者。
泰勒·麦金尼斯(Tyler McGinnis)
谷歌开发技术专家,Ui学习网站创始人,React.js项目的创作者,也是React.js Utah和ReactWeek等活动的组织策划者。
【译者简介】
欧阳奖
拥有多年前端管理经验,对前端技术发展有浓厚的兴趣,目前为联众智慧科技股份有限公司的系统架构师。
目录
部分
章 个React Web应用程序2
1.1构建Product Hunt项目2
1.2设置开发环境2
1.3针对Windows用户的特殊说明3
1.4JavaScript ES6/ES73
1.5开始4
1.6什么是组件8
1.7构建Product组件16
1.8让数据驱动Product组件18
1.9应用程序的次交互:投票事件响应26
1.10更新state和不变性33
1.11用Babel插件重构transform-class-properties37
1.12祝贺你41
第2章 组件42
2.1计时器应用程序42
2.2开始43
2.3将应用程序分解为组件46
2.4从头开始构建React应用程序的步骤50
2.5第(2)步:构建应用程序的静态版本52
2.6第(3)步:确定哪些组件应该是有状态的58
2.7第(4)步:确定每个state 应该位于哪个组件中60
2.8第(5)步:通过硬编码来初始化state61
2.9第(6)步:添加反向数据流68
2.10更新计时器72
2.11删除计时器77
2.12添加计时功能79
2.13添加启动和停止功能81
2.14方法回顾86
第3章组件和服务器87
3.1介绍87
3.2server.js87
3.3服务器API88
3.4使用API90
3.5从服务器加载状态92
3.6client94
3.7向服务器发送开始和停止请求97
3.8向服务器发送创建、更新和删除请求99
3.9下一步100
第4章JSX和虚拟DOM101
4.1React使用了虚拟DOM101
4.2为什么不修改实际的DOM101
4.3什么是虚拟DOM101
4.4虚拟DOM片段102
4.5ReactElement102
4.6JSX107
4.7参考文献113
第5章具有props、state和children的不错组件配置114
5.1介绍114
5.2如何使用本章115
5.3ReactComponent115
5.4props是参数117
5.5PropTypes118
5.6使用getDefaultProps()获取默认props119
5.7上下文120
5.8state123
5.9无状态组件131
5.10使用props.children与子组件对话133
5.11总结137
5.12参考文献137
第6章表单138
6.1表单101138
6.2文本输入142
6.3远程数据163
6.4异步持久性171
6.5Redux176
6.6表单模块185
第7章Webpack与Create React App结合使用186
7.1JavaScript模块186
7.2Create React App188
7.3探索Create React App188
7.4Webpack基础196
7.5对示例应用程序进行修改201
7.6创建生产构建202
7.7弹出205
7.8Create React App和API服务器一起使用207
7.9Webpack总结216
第8章单元测试218
8.1不使用框架编写测试218
8.2Jest是什么226
8.3使用Jest226
8.4React应用程序的测试策略232
8.5使用Enzyme测试基本的React组件234
8.6为食物查找应用程序编写测试256
8.7编写FoodSearch.test.js264
8.8进一步阅读287
第9章路由289
9.1URL中有什么289
9.2构建react-router组件292
9.3使用React Router的动态路由316
9.4支持身份验证的路由337
9.5回顾一下348
第二部分
0章 Flux和Redux介绍350
10.1Flux诞生的原因350
10.2Flux实现351
10.3Redux352
10.4构建一个计数器352
10.5构建store358
10.6Redux的核心361
10.7早期的聊天应用程序362
10.8构建reducer()函数365
10.9订阅store370
10.10将Redux连接到React373
10.11下一步380
1章 Redux中间件381
11.1准备381
11.2使用redux库的createStore()函数382
11.3将消息表示为处于状态中的对象383
11.4引入多线程387
11.5添加ThreadTabs组件393
11.6在reducer中支持多线程395
11.7添加OPEN_THREAD动作404
11.8拆分reducer函数407
11.9添加messagesReducer()函数412
11.10在reducer中定义初始状态417
11.11使用redux的combineReducers()函数420
11.12下一步421
2章 表示组件和容器组件与Redux一起使用422
12.1表示组件和容器组件422
12.2拆分ThreadTabs组件424
12.3拆分Thread组件428
12.4从App组件中移除store433
12.5使用react-redux库创建容器组件434
12.6动作创建器443
12.7总结445
3章 使用GraphQL446
13.1个GraphQL查询446
13.2GraphQL的好处447
13.3GraphQL和REST448
13.4GraphQL和SQL449
13.5Relay 框架和GraphQL框架450
13.6本章预览450
13.7使用GraphQL451
13.8探索GraphiQL451
13.9GraphQL语法454
13.10复杂类型458
13.11探索Graph460
13.12图节点462
13.13viewer463
13.14图的连接和边464
13.15变更467
13.16订阅468
13.17GraphQL和JavaScript结合使用469
13.18GraphQL与React结合使用470
13.19总结471
4章 GraphQL服务器472
14.1编写一个GraphQL服务器472
14.2Windows用户的特殊设置472
14.3连接496
14.4总结512
5章 经典Relay514
15.1介绍514
15.2Relay是一个数据架构520
15.3Relay和GraphQL约定520
15.4将Relay添加到应用程序中529
15.5BooksPage组件545
15.6使用变更修改数据554
15.7构建图书页面554
15.8变更559
15.9总结565
15.10参考资料565
6章 React Native567
16.1初始化568
16.2路由569
16.3571
16.4Web组件与原生组件576
16.5样式584
16.6HTTP请求602
16.7什么是promise602
16.8一次性使用保证605
16.9创建新promise605
16.10使用React Native进行调试606
16.11资料参考608
附录APropTypes(图灵社区下载)
附录BES6(图灵社区下载)
附录CReact Hook(图灵社区下载)
更新日志(图灵社区下载)
内容摘要
使用React能让前端开发人员用更少、更安全的代码来构建更可靠、更强大的应用程序。本书分为两部分,全面介绍了React的相关主题。部分通过例子循序渐进地讲解基础知识,包括创建一个投票应用程序、编写组件、处理用户交互、管理富表单,以及与服务器交互,此外还探索了Create React App的工作原理,编写自动化单元测试,以及使用客户端路由构建多页面应用程序。第二部分探讨在大型应用程序产品中使用的更不错的概念——数据的架构、传输和管理的策略,讲解了Redux、GraphQL、Relay,以及如何使用React Native编写原生、跨平台的移动应用程序。书中每一章都配有示例代码,有助于读者巩固所学。
主编推荐
web开发人员需要考虑使用不同的代码解决浏览器兼容性问题。
React改变了这种局面,它不仅可以帮你为用户创建良好的应用程序,而且还可以让你成为一名更出色的开发人员。
本书介绍了React的整个生态系统,包括React核心库和许多工具。
读完本书后,你和你的团队将拥有构建可靠且功能强大的React应用程序所需的一切知识。
本书不只是一本书,而且还可以当作一门课程来学习,每一章都配有示例代码,提供源代码下载
本书能帮助你“一站式”获取React的系统知识和正确工具,免去四处搜罗碎片化知识的烦恼,为前端开发打下坚实的基础。
创建自己的应用程序——编写组件,处理用户交互,管理富表单,与服务器交互
探索Create React App的工作原理,编写自动化单元测试,使用客户端路由构建多页面应用程序
探讨数据的架构、传输和管理策略——Redux、GraphQL和Relay
使用React Native编写原生、跨平台的移动应用程序
媒体评论
"React和其他库的不同之处在于,它可以教会你一些概念,这些概念可以在你的职业生涯中反复使用。"
--Christopher Chedeau
Facebook前端工程师,React Native共同创作者
"本书完整地描绘了React的图景,可以让我循序渐进地学习。"
--William Young
Foursquare不错软件工程师
"本书逻辑清晰,内容详实。购买本书将是一个很好明智的决定。"
--Otman Bouchari
RestauMagnet LLC创始人
以下为对购买帮助不大的评价