ReactJS Documentation
ReactJS Documentation
Minimum price
Suggested price
ReactJS Documentation

This book is 100% complete

Completed on 2020-09-27

About the Book

ReactJS is a Javascript library for building user interfaces. This PDF ebook is a portable offline reference guide for the community, can be printed or synced with your kindle for a better reading experience. It's based on ReactJS version v.16.13.1

This is an excellent reference format for ReactJS beginners, is not a tutorial just the official documentation for your reference.

This book is not officially endorsed by ReactJS

Check out other books from the author:

Javascript Snippets

Appwrite Up and Running

Front End Developer Interview Questions

Up to Speed with Javascript in 59 minutes

Backend Developer Interview Questions

VueJS Documentation

React Redux Documentation


Data Science Workflow for Beginners

  • Share this book

  • Feedback

    You must own a copy of this Book to access the forums

    Email the Author(s)
  • License

About the Author

Alejandro Garcia
Alejandro Garcia

I started my coding career back in 2003. Lately I've been involved a lot in Javascript for frontend and the backend.

I would love passing along to you some of the experiences and challenges I've faced over the years.

Bundles that include this book

Javascript Snippets
Up to Speed with Javascript in 59 minutes
Javascript Challenges
CoffeeScript The Smart Way
Frontend Developer Interview Questions
Suggested Price
Bundle Price

Table of Contents

  • This Book
    • Recommended Resources
    • Recommended Books
  • Getting Started
    • Try React
    • Learn React
    • Staying Informed
    • Versioned Documentation
    • Something Missing?
  • Add React to a Website
    • Add React in One Minute
    • Optional: Try React with JSX
  • Create a New React App
    • You Might Not Need a Toolchain
    • Recommended Toolchains
    • Creating a Toolchain from Scratch
  • CDN Links
  • Release Channels
  • Hello World
    • How to Read This Guide
    • Knowledge Level Assumptions
    • Let’s Get Started!
  • Introducing JSX
  • Rendering Elements
    • Rendering an Element into the DOM
    • Updating the Rendered Element
    • React Only Updates What’s Necessary
  • Components and Props
    • Function and Class Components
    • Rendering a Component
    • Composing Components
    • Extracting Components
    • Props are Read-Only
  • State and Lifecycle
    • Converting a Function to a Class
    • Adding Local State to a Class
    • Adding Lifecycle Methods to a Class
    • Using State Correctly
    • The Data Flows Down
  • Handling Events
    • Passing Arguments to Event Handlers
  • Conditional Rendering
  • Lists and Keys
    • Keys
  • Forms
    • Controlled Components
    • The textarea Tag
    • The select Tag
    • The file input Tag
    • Handling Multiple Inputs
    • Controlled Input Null Value
    • Alternatives to Controlled Components
    • Fully-Fledged Solutions
  • Lifting State Up
    • Adding a Second Input
    • Writing Conversion Functions
    • Lifting State Up
    • Lessons Learned
  • Composition vs Inheritance
    • Containment
    • Specialization
    • So What About Inheritance?
  • Thinking in React
    • Start With A Mock
    • Step 1: Break The UI Into A Component Hierarchy
    • Step 2: Build A Static Version in React
    • Step 3: Identify The Minimal (but complete) Representation Of UI State
    • Step 4: Identify Where Your State Should Live
    • Step 5: Add Inverse Data Flow
    • And That’s It
  • Accessibility
    • Why Accessibility?
    • Standards and Guidelines
    • Semantic HTML
    • Accessible Forms
    • Focus Control
    • Mouse and pointer events
    • More Complex Widgets
    • Other Points for Consideration
    • Development and Testing Tools
  • Code Splitting
    • Bundling
    • Code Splitting
    • import()
    • React.lazy
    • Route-based code splitting
    • Named Exports
  • Context
    • When to Use Context
    • Before You Use Context
    • API
    • Examples
    • Caveats
    • Legacy API
  • Error Boundaries
    • Introducing Error Boundaries
    • Live Demo
    • Where to Place Error Boundaries
    • New Behavior for Uncaught Errors
    • Component Stack Traces
    • How About try/catch?
    • How About Event Handlers?
    • Naming Changes from React 15
  • Forwarding Refs
    • Forwarding refs to DOM components
    • Note for component library maintainers
    • Forwarding refs in higher-order components
    • Displaying a custom name in DevTools
  • Fragments
    • Motivation
    • Usage
  • Higher Order Components
    • Use HOCs For Cross-Cutting Concerns
    • Don’t Mutate the Original Component. Use Composition.
    • Convention: Pass Unrelated Props Through to the Wrapped Component
    • Convention: Maximizing Composability
    • Convention: Wrap the Display Name for Easy Debugging
    • Caveats
  • Integrating with Other Libraries
    • Integrating with DOM Manipulation Plugins
    • Integrating with Other View Libraries
    • Integrating with Model Layers
  • JSX In Depth
    • Specifying The React Element Type
    • Props in JSX
    • Children in JSX
  • Optimizing Performance
    • Use the Production Build
    • Profiling Components with the Chrome Performance Tab
    • Profiling Components with the DevTools Profiler
    • Virtualize Long Lists
    • Avoid Reconciliation
    • shouldComponentUpdate In Action
    • Examples
    • The Power Of Not Mutating Data
  • Portals
    • Usage
    • Event Bubbling Through Portals
  • Profiler API
    • Usage
    • onRender Callback
  • React Without ES6
    • Declaring Default Props
    • Setting the Initial State
    • Autobinding
    • Mixins
  • React Without JSX
  • Reconciliation
    • Motivation
    • The Diffing Algorithm
    • Tradeoffs
  • Refs and the DOM
  • Render Props
    • Use Render Props for Cross-Cutting Concerns
    • Using Props Other Than render
    • Caveats
  • Static Type Checking
    • Flow
    • TypeScript
    • Reason
    • Kotlin
    • Other Languages
  • Strict Mode
  • Typechecking With PropTypes
  • Uncontrolled Components
    • The file input Tag
  • Web Components
    • Using Web Components in React
    • Using React in your Web Components
  • React Top-Level API
    • Overview
    • Reference
  • React Component
    • Overview
    • Reference
    • Other APIs
    • Class Properties
    • Instance Properties
  • ReactDOM
    • Overview
    • Reference
  • ReactDOMServer
    • Overview
    • Reference
  • DOM Elements
    • Differences In Attributes
    • All Supported HTML Attributes
  • SyntheticEvent
    • Overview
    • Supported Events
    • Reference
  • Test Utilities
    • Overview
    • Reference
    • Other Utilities
  • Test Renderer
    • Overview
    • Reference
    • Ideas
  • JavaScript Environment Requirements
  • Glossary of React Terms
    • Single-page Application
    • ES6, ES2015, ES2016, etc
    • Compilers
    • Bundlers
    • Package Managers
    • CDN
    • JSX
    • Elements
    • Components
    • Lifecycle Methods
    • Keys
    • Refs
    • Events
    • Reconciliation
  • Introducing Hooks
    • Video Introduction
    • No Breaking Changes
    • Motivation
    • Gradual Adoption Strategy
    • Frequently Asked Questions
    • Next Steps
  • Hooks at a Glance
    • State Hook
    • Effect Hook
    • Rules of Hooks
    • Building Your Own Hooks
    • Other Hooks
    • Next Steps
  • Using the State Hook
    • Equivalent Class Example
    • Hooks and Function Components
    • What’s a Hook?
    • Declaring a State Variable
    • Reading State
    • Updating State
    • Recap
    • Next Steps
  • Using the Effect Hook
    • Effects Without Cleanup
    • Effects with Cleanup
    • Recap
    • Tips for Using Effects
    • Next Steps
  • Rules of Hooks
    • ESLint Plugin
    • Explanation
    • Next Steps
  • Building Your Own Hooks
    • Extracting a Custom Hook
    • Using a Custom Hook
    • useYourImagination()
  • Hooks API Reference
    • Basic Hooks
    • Additional Hooks
  • Hooks FAQ
    • Adoption Strategy
    • From Classes to Hooks
    • Performance Optimizations
    • Under the Hood
  • Testing Overview
  • Testing Recipes
  • Testing Environments
  • Introducing Concurrent Mode (Experimental)
    • What Is Concurrent Mode?
    • Blocking vs Interruptible Rendering
    • Putting Research into Production
    • Next Steps
  • Suspense for Data Fetching (Experimental)
    • What Is Suspense, Exactly?
    • Using Suspense in Practice
    • Traditional Approaches vs Suspense
    • Start Fetching Early
    • Suspense and Race Conditions
    • Handling Errors
    • Next Steps
  • Concurrent UI Patterns (Experimental)
    • Transitions
    • The Three Steps
    • Other Patterns
    • Next Steps
  • Adopting Concurrent Mode (Experimental)
    • Installation
    • What to Expect
  • Concurrent Mode API Reference (Experimental)
    • Enabling Concurrent Mode
    • Suspense API
  • AJAX and APIs
  • Babel, JSX, and Build Steps
  • Passing Functions to Components
  • Component State
  • Styling and CSS
  • File Structure
  • Versioning Policy
  • Virtual DOM and Internals

Causes Supported

Free Software Foundation

The Free Software Foundation (FSF) is a nonprofit with a worldwide mission to promote computer user freedom. We defend the rights of all software users.

As our society grows more dependent on computers, the software we run is of critical importance to securing the future of a free society. Free software is about having control over the technology we use in our homes, schools and businesses, where computers work for our individual and communal benefit, not for proprietary software companies or governments who might seek to restrict and monitor us.

Authors have earned$9,530,340writing, publishing and selling on Leanpub,
earning 80% royalties while saving up to 25 million pounds of CO2 and up to 46,000 trees.

Learn more about writing on Leanpub

The Leanpub 45-day 100% Happiness Guarantee

Within 45 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.

See full terms

Free Updates. DRM Free.

If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).

Most Leanpub books are available in PDF (for computers), EPUB (for phones and tablets) and MOBI (for Kindle). The formats that a book includes are shown at the top right corner of this page.

Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.

Learn more about Leanpub's ebook formats and where to read them

Write and Publish on Leanpub

You can use Leanpub to easily write, publish and sell in-progress and completed ebooks and online courses! Leanpub is a powerful platform for serious authors, combining a simple, elegant writing and publishing workflow with a store focused on selling in-progress ebooks. Leanpub is a magical typewriter for authors: just write in plain text, and to publish your ebook, just click a button. It really is that easy.

Learn more about writing on Leanpub