ReactJS Documentation
Minimum price
Suggested price

ReactJS Documentation

Offline Ebook PDF Version of the ReactJS v16.13.1 Documentation

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.

React JS Documentation pdf download

This book is not officially endorsed by ReactJS

Check out other books from the author:

Performance Optimized React Applications

React Hooks

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


Some of the most common questions in relation to React Js

What is React js used for?

React. js is an open-source JavaScript library that is used for building user interfaces specifically for single-page applications. It's used for handling the view layer for web and mobile apps. React also allows us to create reusable UI components.

Is React js frontend or backend?

js/React is an open-source frontend framework that is based on JavaScript, developed by Facebook, and best known for its virtual DOM feature. With React, we recommend Express. js/Express as a backend service.

Is React js a programming language?

React is a popular and widely used programming language at present since almost every web developer or a full-stack developer is using it.

What is difference between JavaScript and Reactjs?

Plain JS apps usually start with the initial UI created on the server (as HTML), whereas React apps start with a blank HTML page, and dynamically create the initial state in JavaScript. React requires you to break your UI into components, but plain JS apps can be structured in any way you see fit.

Why React is so popular?

Being simple to read and easy to use made React easy to understand and implement, allowing businesses to hit the ground running and build what they need as quickly as possible. Beyond that, React's ease of use has also helped many developers adopt the technology and make it part of their toolkit.

Can I learn React without knowing JavaScript?

Since React is a JS library, there is no way around learning JavaScript. You cannot learn React without JavaScript or without knowing JavaScript in the first place. In comparison to other frontend solutions, React makes heavily use of JavaScript.

  • Share this book

  • Categories

    • Web Development
    • React
    • JavaScript
  • Feedback

  • License

About the Author

Alejandro Garcia
A.J. García

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

Bought separately
Bundle Price
Bought separately
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.

The Leanpub 60 Day 100% Happiness Guarantee

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

Now, this is technically risky for us, since you'll have the book or course files either way. But we're so confident in our products and services, and in our authors and readers, that we're happy to offer a full money back guarantee for everything we sell.

You can only find out how good something is by trying it, and because of our 100% money back guarantee there's literally no risk to do so!

So, there's no reason not to click the Add to Cart button, is there?

See full terms...

80% Royalties. Earn $16 on a $20 book.

We pay 80% royalties. That's not a typo: you earn $16 on a $20 sale. If we sell 5000 non-refunded copies of your book or course for $20, you'll earn $80,000.

(Yes, some authors have already earned much more than that on Leanpub.)

In fact, authors have earnedover $13 millionwriting, publishing and selling on Leanpub.

Learn more about writing on Leanpub

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) and EPUB (for phones, tablets and 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. (Or, if you are producing your ebook your own way, you can even upload your own PDF and/or EPUB files and then publish with one click!) It really is that easy.

Learn more about writing on Leanpub