React Playground

This project was bootstrapped with Create React App.

Prerequisites

Install node and yarn then run the following commands:

git clone https://github.com/ecris87/react-playground.git
cd react-playground
yarn install
yarn start

After all that the project should be up and running at localhost:3000.

Day 1

Rendering

  • JSX (not HTML but a syntax extension to JavaScript)
  • Embedding expressions in JSX
  • Rendering an Element into the DOM
    • React element has to return only one element
  • Exploring React DOM updates

Components

  • Functional and Class components
  • Working with components (composition, extraction)
  • Managing data
    • props (read-only, can be considered parameter for components)
    • state (private and fully controlled by the component)

Day 2

State and Lifecycle

  • Components lifecycle hooks
  • Using state correctly
    • state shouldn't be modified directly (except in the constructor)
    • setState is asynchronous
    • state updates are merged

Handling Events

  • React events are named using camelCase
  • Class methods are not bound by default (best practice: bind them in the constructor)

Day 3

Data Fetching

  • Fetching data from the server and displaying it
  • Conditional Rendering
  • Lists and Keys

Day 4

More about Props

  • Props shorthand
  • Typechecking with PropTypes

Forms in React

  • Handling Multiple Inputs
  • Controlled Components
  • Select, Textarea, Checkbox

Day 5

Composition vs Inheritance

  • Props.children
  • Specialized Components

Day 6

Redux

  • Redux Principles:
    • Single source of truth: the state tree
    • State is read-only
    • Changes are made with pure functions (reducers)
  • The Redux store: createStore()
  • Store Methods: getState(), dispatch(), and subscribe()
  • Store middleware
  • Splitting reducers: combineReducers()

Day 7

React-Redux

  • Lifting state up
  • Introducing Redux (with react-redux)
  • Async Flow (with redux-thunk)