# 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
