Chapter 1: Why React?
The right level of abstraction
Chapter 2: Rendering with JSX
Creating your own JSX elements
Using JavaScript expressions
Chapter 3: Understanding Properties and State
What are component properties?
Chapter 4: Event Handling โ The React Way
Event handler context and parameters
Binding handlers to elements
Chapter 5: Crafting Reusable Components
The difficulty with monolithic components
Refactoring component structures
Rendering component trees
Feature components and utility components
Chapter 6: The React Component Lifecycle
Why components need a lifecycle
Initializing properties and state
Optimize rendering efficiency
Rendering imperative components
Cleaning up after components
Chapter 7: Validating Component Properties
Promoting portable components
Simple property validators
Type and value validators
Writing custom property validators
Chapter 8: Extending Components
Composition with higher-order components
Chapter 9: Handling Navigation with Routes
Handling route parameters
Chapter 10: Server-Side React Components
What is isomorphic JavaScript?
Chapter 11: Mobile-First React Components
The rationale behind mobile-first design
Using react-bootstrap components
Chapter 12: Why React Native?
React and JSX are familiar
The mobile browser experience
Android and iOS, different yet the same
The case for mobile web apps
Chapter 13: Kickstarting React Native Projects
Using the React Native command-line tool
iOS and Android simulators
Chapter 14: Building Responsive Layouts with Flexbox
Flexbox is the new layout standard
Introducing React Native styles
Chapter 15: Navigating Between Screens
Navigators, scenes, routes, and stacks
Chapter 16: Rendering Item Lists
Rendering data collections
Sorting and filtering lists
Chapter 17: Showing Progress
Chapter 18: Geolocation and Maps
Annotating points of interest
Chapter 19: Collecting User Input
Selecting from a list of options
Toggling between off and on
Collecting date/time input
Chapter 20: Alerts, Notifications, and Confirmation
Getting user confirmation
Chapter 21: Responding to User Gestures
Scrolling with our fingers
Swipeable and cancellable
Chapter 22: Controlling Image Display
Chapter 23: Going Offline
Detecting the state of the network
Synchronizing application data
Chapter 24: Handling Application State
Information architecture and Flux
Unified information architecture
Chapter 25: Why Relay and GraphQL?
Declarative data dependencies
Mutating application state
The GraphQL backend and microservices
Chapter 26: Building a Relay React App