# Introduction

## Deploy to Gitbook

```
$ git remote add gitbook https://git.gitbook.com/shopify/react.git
$ git push gitbook master
```

React courses

Here lives a list of courses / articles about React. We have split the courses in 3 levels: intro / intermediate and advanced.

If you have any questions or need help, join us on Slack: #rnd-education-react

## Prerequisites

### React

React is a JavaScript library, so it assumes you have a basic understanding of the JavaScript language. If you don't feel very confident, we recommend [refreshing your JavaScript knowledge](https://developer.mozilla.org/en-US/docs/Web/JavaScript/A_re-introduction_to_JavaScript).

### ES6

The examples used in the courses use ES6 syntax. It is used sparingly, but we encourage you to get familiar with [arrow functions, classes, template literals, let, and const statements](https://babeljs.io/learn-es2015/)

### Create React App

In order not to loose time and get lost with your environment configuration / Webpack / ES6 or anything else, we encourage you to take a look at Create React App and follow [our quick guide](https://shopify-1.gitbook.io/react/getting-started/before-you-get-started) to be up and running right away!

## Introduction

Learn about React basics:

* Rendering
* Stateless components
* Stateful components
* Styling components
* The folder architecture

## Intermediate

* Lifecycle methods
* Controlled vs Uncontrolled components
* Anti-patterns
* Refs and the DOM
* Lifting State Up

## Advanced Topics

* Conventions
* Reconciliation
* Performance Optimizations
* Avoiding Reconciliation
* PureComponent
* Avoiding inline lambdas
* Development vs Production Build
* Context

## Advanced Patterns

* Higher-order Components
* Children as Function
* Renderless Components
* Portal
* Error handling


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://shopify-1.gitbook.io/react/getting-started/introduction.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
