具体描述
React in Action introduces front-end developers to the React framework and related tools. This clearly written, example-rich book begins by introducing you to React, diving into some of the fundamental ideas in React, and working with components. In the second section, you'll explore the different ways that data works in React as well as learning more about components. You'll also find several useful appendixes covering related topics like React tooling and the React ecosystem.
About the Technology
Facebook created React to help deliver amazing user experiences on a website with thousands of components and an incomprehensible amount of traffic. The same powerful tools are available to you too! The key is a clever design for managing state, data flow, and rendering, so your application is easy to think about and runs smoothly. Add an incredibly rich ecosystem of components and libraries, and you’ve got a recipe for building web apps that will delight both developers and users.
React in Action teaches you to think like a pro about user interfaces and building them with React. This practical book gets you up and running quickly with hands-on examples in every chapter. You’ll master core topics like rendering, lifecycle methods, JSX, data flow, forms, routing, integrating with third-party libraries, and testing. And the included application design ideas will help make your apps pop. As you learn to integrate React into full-stack applications, you’ll explore state management with Redux and server-side rendering, and even dabble in React Native for mobile UIs.
What's inside
React from the ground up
Implementing a routing system with components
Server-side rendering in Node.js
Working with third-party libraries
Testing React components
作者简介
马克·蒂伦斯·托马斯 (Mark Tielens Thomas):一位经验丰富的软件工程师,他每天都在用React、JavaScript和Node.js工作。他喜爱整洁的代码、优美的系统和上好的咖啡。
任发科:火币高级研发总监,曾任职亚马逊、唯 品 会等多家互联网公司,担任研发和技术管理工作,有丰富的软件架构、开发和管理经验。个人长期从事和关注高效研发组织的构建和管理,并有丰富的团队管理实践。近年主要关注和从事研发效能和DevOps体系的建立,目前从事稳定性工程的相关工作。
陈伟:哗啦啦前端架构师。曾在唯品会、火币等公司任前端工程师和前端架构师。深入理解JavaScript语言以及Node.js、Vue、React等前端框架,并在前端组件化方向有深入的工程化研究。目前致力于可视化的页面编辑器的设计和开发,赋能产品与前端,提升公司开发效率。
蒋峰:火币网资深前端工程师,曾就职于国家农业信息化中心、阿里健康、融数金服等从事软件研发、基础架构等工作,目前主要负责火币网前端相关产品研发管理工作。早年间致力于微软.NET框架研发,近年专注于前端研发体系架构,有大量的C#、Node.js和JavaScript项目开发经验,对Electron跨平台应用有极大的兴趣与研究。目前正在积极推进企业内中后台微前端应用方案的验证与实施。
邱巍:现就职于哗啦啦研发中心,曾就职于作业盒子、融数金服、火币网等从事软件研发工作,目前主要负责数据可视化基础组件研发。对图表绘制、图表交互、数据建模与分析等相关内容有极大兴趣。目前致力于提供展现更准确,分析更高效的数据可视化工具研发。
目录信息
List of Tables
List of Listings
Table of Contents
Preface
Acknowledgments
About this book
About the author
About the cover illustration
第一部分 Meet React
Ch 1. Meet React
1.1. Meet React
1.1.1. Who this book is for
1.1.2. A note on tooling
1.1.3. Who uses React?
1.2. What does React not do?
1.2.1. Tradeoffs of React
1.3. The virtual DOM
1.3.1. The DOM
1.3.2. The virtual DOM
1.3.3. Updates and diffing
1.3.4. Virtual DOM: Need for speed?
1.4. Components: The fundamental unit of React
1.4.1. Components in general
1.4.2. Components in React: Encapsulated and reusable
1.5. React for teams
1.6. Summary
Ch 2. <Hello World />: our first component
2.1. Introducing React components
2.1.1. Understanding the application data
2.1.2. Multiple components: Composition and parent-child relationships
2.1.3. Establishing component relationships
2.2. Creating components in React
2.2.1. Creating React elements
2.2.2. Rendering your first component
2.2.3. Creating React components
2.2.4. Creating React classes
2.2.5. The render method
2.2.6. Property validation via PropTypes
2.3. The life and times of a component
2.3.1. A React state of mind
2.3.2. Setting initial state
2.4. Meet JSX
2.4.1. Creating components using JSX
2.4.2. Benefits of JSX and differences from HTML
2.5. Summary
第二部分 Components and data in React
Ch 3. Data and data flow in React
3.1. Introducing state
3.1.1. What is state?
3.1.2. Mutable and immutable state
3.2. State in React
3.2.1. Mutable state in React: Component state
3.2.2. Immutable state in React: Props
3.2.3. Working with props: PropTypes and default props
3.2.4. Stateless functional components
3.3. Component communication
3.4. One-way data flow
3.5. Summary
Ch 4. Rendering and lifecycle methods in React
4.1. Getting set up with the Letters Social repo
4.1.1. Getting the source code
4.1.2. Which version of node should I use?
4.1.3. Note on tooling and CSS
4.1.4. Deploying
4.1.5. The API server and database
4.1.6. Running the app
4.2. The render process and lifecycle methods
4.2.1. Introducing lifecycle methods
4.2.2. Types of lifecycle methods
4.2.3. Initial and “will” methods
4.2.4. Mounting components
4.2.5. Updating methods
4.2.6. Unmounting methods
4.2.7. Catching errors
4.3. Starting to create Letters Social
4.4. Summary
Ch 5. Working with forms in React
5.1. Creating posts in Letters Social
5.1.1. Data requirements
5.1.2. Component overview and hierarchy
5.2. Forms in React
5.2.1. Getting started with forms
5.2.2. Form elements and events
5.2.3. Updating state in forms
5.2.4. Controlled and uncontrolled components
5.2.5. Form validation and sanitization
5.3. Creating new posts
5.4. Summary
Ch 6. Integrating third-party libraries with React
6.1. Sending posts to the Letters Social API
6.2. Enhancing your component with maps
6.2.1. Creating the DisplayMap component using refs
6.2.2. Creating the LocationTypeAhead component
6.2.3. Updating CreatePost and adding maps to posts
6.3. Summary
Ch 7. Routing in React
7.1. What is routing?
7.1.1. Routing in modern front-end web applications
7.2. Creating a router
7.2.1. Component routing
7.2.2. Creating the <Route /> component
7.2.3. Starting to build the <Router/> component
7.2.4. Matching URL paths and parameterized routing
7.2.5. Adding routes to the Router component
7.3. Summary
Ch 8. More routing and integrating Firebase
8.1. Using the router
8.1.1. Creating a page for a post
8.1.2. Creating a <Link/> component
8.1.3. Creating a <NotFound/> component
8.2. Integrating Firebase
8.2.1. Ensuring a user is logged in
8.3. Summary
Ch 9. Testing React componentsfree
9.1. Types of testing
9.1.1. Why test?
9.2. Testing React components with Jest, Enzyme, and React-test-renderer
9.3. Writing your first tests
9.3.1. Getting started with Jest
9.3.2. Testing a stateless functional component
9.3.3. Testing the CreatePost component without Enzyme
9.3.4. Test coverage
9.4. Summary
第三部分 React Application architecture
Ch 10. Redux application architecture
10.1. The Flux application architecture
10.1.1. Meet Redux: A variation on Flux
10.1.2. Getting set up for Redux
10.2. Creating actions in Redux
10.2.1. Defining action types
10.2.2. Creating actions in Redux
10.2.3. Creating the Redux store and dispatching actions
10.2.4. Asynchronous actions and middleware
10.2.5. To Redux or not to Redux?
10.2.6. Testing actions
10.2.7. Creating custom Redux middleware for crash reporting
10.3. Summary
Ch 11. More Redux and integrating Redux with React
11.1. Reducers determine how state should change
11.1.1. State shape and initial state
11.1.2. Setting up reducers to respond to incoming action
11.1.3. Combining reducers together in our store
11.1.4. Testing reducers
11.2. Bringing React and Redux together
11.2.1. Containers vs. presentational components
11.2.2. Using <Provider /> to connect components to the Redux store
11.2.3. Binding actions to component event handlers
11.2.4. Updating your tests
11.3. Summary
Ch 12. React on the server and integrating React Router
12.1. What is server-side rendering?
12.1.1. Digging into server-side rendering
12.2. Why render on the server?
12.3. You might not need SSR
12.4. Rendering components on the server
12.5. Switching to React Router
12.5.1. Setting up React router
12.6. Handling authenticated routes with React router
12.7. Server rendering with data-fetching
12.8. Summary
Ch 13. An introduction to React Native
13.1. Introducing React Native
13.2. React and React Native
13.3. When to use React Native
13.4. The simplest “Hello World”
13.5. Where to go next
13.6. Summary
· · · · · · (收起)
读后感
用户评价
当我看到《React in Action》这本书时,我脑海中浮现出无数个在实际开发中遇到的React难题,比如如何优雅地处理组件间的通信,如何管理复杂的全局状态,以及如何在保证开发效率的同时,优化应用的性能。我一直认为,一本好的技术书籍,不仅要讲解“做什么”,更要解释“为什么这么做”,并提供切实可行的解决方案。这本书的书名,正是我所期待的,它暗示着这本书将不仅仅是理论的堆砌,而是会提供大量的实战指导。我希望通过这本书,能够真正地理解React的声明式编程思想,掌握组件化开发的精髓,并能灵活运用各种模式来解决实际开发中的问题。我尤其期待书中能够有关于Hooks的深入解析,以及如何在实际项目中构建可复用、可维护的组件库。我相信,这本书将是我在React开发道路上的一个重要里程碑,它将帮助我提升技术深度和广度,从而更好地应对未来前端开发中的各种挑战。我也对书中关于TypeScript在React项目中的应用抱有浓厚的兴趣,希望能够从中学习到如何将强类型语言的优势引入到React开发中。
当我拿到《React in Action》这本书的时候,我脑海中浮现出无数关于现代前端开发的场景。我知道,在这个快速迭代的技术领域,掌握一套强大的工具是至关重要的,而React无疑是其中的佼佼者。我之所以选择这本书,是因为我厌倦了那些只教你“怎么做”而从不解释“为什么”的教程。我渴望理解React的底层逻辑,明白它的设计哲学,从而能够灵活运用,而不是死记硬背。这本书的书名“in Action”就暗示了它将注重实践,这正是我所需要的。翻开书页,扑面而来的是一种严谨而又富有启发性的气息。作者显然花费了大量的心思来组织内容,从最基础的概念讲起,循序渐进地深入到更复杂的模式和架构。我特别注意到,书中对组件化思想的阐述非常透彻,它不仅仅是介绍了如何创建组件,更是讲解了组件复用的最佳实践,以及如何设计出可维护、可扩展的组件库。这对于我目前正在参与的一个大型前端项目来说,简直是雪中送炭。我希望通过这本书,能够建立起一套清晰的组件设计思路,避免在项目中陷入“意大利面条式”的代码泥潭。同时,我对书中关于状态管理的讨论也充满了期待,因为这是React开发中最容易出现瓶颈的地方之一。
我一直认为,学习一门技术,最重要的是能够掌握其核心思想和设计模式,而不是仅仅停留在API的层面。《React in Action》这本书的标题就给我一种“干货满满”的预感,它不是那种“React快速入门”的快餐读物,而是真正希望带你走进React的内心世界。我希望这本书能够帮助我理解React为何能够如此高效地处理UI更新,它的虚拟DOM机制究竟是如何工作的,以及为什么函数组件和Hooks成为了现代React开发的趋势。我期待书中能够有深入的剖析,而不仅仅是表面的介绍。我深信,只有理解了“为什么”,才能真正做到“怎么做”,才能在面对复杂问题时游刃有余。对于这本书,我有一个很高的期望,那就是它能让我摆脱对React的“知其然,不知其所以然”的状态,能够真正地“玩转”React。我相信,通过这本书的学习,我能够更好地理解React的声明式编程范式,并将其应用到实际的项目开发中,提高开发效率和代码质量。我也期待书中能够分享一些关于性能优化的技巧,因为在实际项目中,性能往往是一个绕不开的话题。
拿到《React in Action》这本书,我感觉像是找到了一位经验丰富的老友,准备和我分享他多年来在React开发领域的智慧结晶。我一直对React的声明式编程和组件化思想非常着迷,但总觉得在实际项目中,将这些理念完美落地并不容易。我常常会遇到一些棘手的问题,例如组件之间的通信、状态的统一管理、以及如何优化应用的性能等等。我希望这本书能够像它的名字一样,将React的理论知识转化为实实在在的行动指南,让我能够学以致用,在项目中游刃有余。我尤其期待书中能够有关于React Hooks的深入讲解,因为我发现Hooks已经成为了现代React开发不可或缺的一部分,但对于它的原理和最佳实践,我还有很多不清楚的地方。我相信,通过这本书的学习,我能够更好地理解Hooks的强大之处,并能有效地利用它来简化组件逻辑,提高代码的可读性和可维护性。我也非常希望能从书中学习到一些关于React的测试方法,因为在现代软件开发中,测试是保证代码质量的重要环节。
初拿到《React in Action》这本书,我便被其沉甸甸的分量所吸引。这不像是一本简单的技术手册,而更像是一部关于React思想和实践的百科全书。我一直坚信,掌握一门技术,最重要的是理解其背后的设计哲学和核心原理。《React in Action》这个名字,在我看来,不仅仅是关于如何“使用”React,更是关于如何在实际开发中“驾驭”React。我希望这本书能够带领我深入理解React的单向数据流,组件的生命周期,以及虚拟DOM的运作机制。我期待它能够教会我如何构建可复用、可维护的组件,如何有效地管理复杂的应用程序状态,以及如何优化应用的性能。我尤其关注书中关于React生态系统的内容,例如如何与Redux、React Router等流行库进行集成,以及如何利用Webpack等工具来构建高效的开发环境。我相信,通过这本书的学习,我能够将React的理论知识转化为实际的开发能力,成为一名更优秀的React开发者。我迫不及待地想翻开它,开始这段激动人心的学习之旅。
在我多年的前端开发经历中,React无疑是最让我印象深刻的框架之一。然而,即便如此,我仍然觉得对它的理解不够深入,总是在一些细节上感到困惑。我选择《React in Action》这本书,正是希望它能够填补我知识上的空白,让我能够真正地“学以致用”。我非常看重这本书的“Action”部分,我期待它能提供大量的代码示例,并且这些示例能够贴近实际开发场景,而不是那些脱离实际的“教科书式”的代码。我希望通过这本书,能够更深入地理解React的组件生命周期,如何更有效地管理组件状态,以及如何利用React的生态系统来构建复杂的应用程序。我期待这本书能够帮助我掌握一些更高级的React开发技巧,例如如何进行性能优化,如何编写可测试的代码,以及如何与其他前端技术进行集成。我相信,这本书将是我的React学习之旅中一个重要的里程碑,它将帮助我成为一名更强大、更自信的前端工程师。我也希望能从书中学习到一些关于React的架构设计原则,从而能够构建出更具扩展性和可维护性的应用。
在我决定深入学习React之前,我曾阅读过不少相关的技术文章和教程,但总觉得有些零散,缺乏系统性。《React in Action》这本书的出现,仿佛为我打开了一扇新的大门。我被它的封面所吸引,简洁的设计传达出一种专业和专注的态度。更重要的是,这本书的标题“in Action”让我对它充满了期待,我希望它能提供丰富的实战案例和深入的原理讲解,而不仅仅是停留在API的介绍上。我尤其关注书中关于React核心概念的阐述,例如虚拟DOM、组件化、生命周期以及状态管理等,我希望能够通过这本书,真正理解这些概念的底层逻辑,并学会在实际项目中灵活运用。我非常期待书中能够提供一些关于如何构建大型、可维护的React应用的指导,例如如何组织项目结构、如何进行代码复用、以及如何进行有效的测试。我相信,这本书将是帮助我从“React使用者”蜕变为“React精通者”的关键。
这本书的封面设计就让我眼前一亮,简洁而又不失专业感,深蓝色的背景搭配上橙色的“React in Action”字样,给人一种稳重而充满活力的感觉。我一直对React这个前端框架非常感兴趣,但总觉得市面上的一些入门教程过于浅显,或者讲得过于理论化,难以真正理解其精髓。在朋友的推荐下,我入手了《React in Action》,从第一眼看到它,我就感受到了它与众不同之处。书本的纸张质量也很好,触感舒适,即使长时间翻阅也不会感到疲劳。在拿到书后,我迫不及待地翻开了第一页,被其清晰的排版和字体所吸引。文字大小适中,段落之间的留白也恰到好处,阅读起来非常舒服,不像有些技术书籍密密麻麻的文字让人望而却步。我期待着这本书能带我深入了解React的方方面面,并能在实际项目中得到应用。这本书的厚度也让我觉得内容会很充实,不是那种匆匆带过的浅尝辄止,而是真正能够引导读者深入理解React的原理和实践。我尤其看重书籍在代码示例方面的表现,希望这本书的示例能够贴近实际开发场景,而不是那些为了演示某个概念而拼凑出来的“玩具”代码。相信这本书能成为我前端开发道路上的一位得力助手。
拿到《React in Action》这本书,我感觉自己像是准备进行一次深入的探险。我对React这个框架的热情由来已久,但一直觉得在实际应用中,还有很多地方做得不够到位,不够“得心应手”。我希望这本书能够带领我深入React的“行动”之中,理解其核心的设计理念,掌握如何在真实的项目中运用这些理念来构建高性能、易维护的应用程序。我期待书中不仅仅是API的罗列,而是能够通过深入的讲解和生动的示例,让我理解React的声明式编程、组件化思想以及状态管理的精髓。我尤其关注书中关于React Hooks的部分,因为我知道Hooks是现代React开发的重要组成部分,但其背后的原理和最佳实践,我还有很多需要学习的地方。我相信,这本书将能够帮助我解决在实际开发中遇到的种种问题,提升我的React开发能力,让我能够更自信地迎接前端开发的挑战。同时,我对书中关于React的性能优化和测试策略也充满了好奇,希望能从中获得宝贵的经验。
这本书给我的第一印象是它传递出一种“深度”和“系统性”。在前端技术日新月异的今天,很多教程都倾向于介绍最新的API和最佳实践,但往往忽略了对基础原理的深入讲解。我之所以选择《React in Action》,正是因为我希望能够建立起对React的扎实理解,而不是仅仅停留在表面的语法层面。我期待这本书能够带领我一步步揭开React的神秘面纱,理解其虚拟DOM的工作原理,掌握组件生命周期的奥秘,以及学会如何有效地管理应用程序的状态。我尤其看重书中在实际应用方面的讲解,我希望它能提供一些真实世界的案例,展示如何将React的思想和模式应用到复杂的项目中。我相信,通过这本书的学习,我能够提升自己在React开发方面的能力,能够更自信地应对各种挑战。我非常期待书中关于React生态系统中的一些热门库和工具的介绍,例如Router、Redux等,希望能从中学习到如何将它们与React核心原理相结合,构建出完整的应用程序。
内容很详实
内容很详实
内容很详实
内容很详实
内容很详实