React
Good to know
Training goal
This training will teach the participants the basic mechanisms of ReactJS and Javascript.
Detailed contents
The training is regularly updated to be consistent with the latest Javascript best practices. The training is based on an intensive practice of React and its tools. The training material is a complete project with the emphasis on architecture and best practices.
Course materials provided
The trainer will distribute the training materials in electronic format at the end of the training.
In addition, the work done during these 3 days will result in the creation of a step-by-step versioned web application. Each participant is invited to keep on their machine the code of the training project, which they will have written themselves with the help of the trainer, because this code can be used as a technical base for future projects.
Prerequisites
In order to fully benefit from the training, participants must have previous professional experience in the following areas :
- Good knowledge of Javascript
Participants should have a computer with a LAMP environment, including preferably the following elements :
- An internet connection allowing working with ease (if the training is held outside our premises),
- An IDE they master (PHPStorm, SublimeText, VSCode, ...),
- A UNIX shell,
- The latest version NodeJS/NPM (https://nodejs.org/en/download/releases/) ,
- Git installed (useful for composer dependencies),
- One MySql/MariaDB server per person,
- Administrator rights on the machine,
It is recommended for the participants to use a text editor they are comfortable with, so that they can focus on the training.
If the training is held in the Client's premises, we require for the Client to provide a separate room for the training to take place, big enough to accommodate all participants and the trainer, for the whole duration of the training. A video projector or wide screen TV must be provided so that the participants can see the trainer's laptop computer screen. A paperboard or white board would be much appreciated.
Training course
Getting started - Bootstrap a react application
Boostrap
Install
Architecture
Run & Clean up
JSX
Hello World
Embedded expressions
Attributes
Children
Components
Functional vs Class components
Create a greeting component
Playing with component props
CSS & class names
Stages & Lifecycles
GitClicker - Cookie Clicker like
Hooks
Class & Functional components
States
Refactor your react classes to functional components
Let's add an animation on the Gitcoin!
Create a store of items
useEffect
We need to buy these items!
PropTypes
Install prop-types and eslint
Default props
Fix eslint errors
Routing
Install
Bootstrap the routing on the application
Let’s add some design
Install & exécuter
What is under the hood ?
Routing
Redux and Side Effects
Store, Action, Reducer
State
Architecture
Usage of Hooks
Getting started
Create the game module
Refactoring the game module
Unit testing
Jest
Jest - Eslint configuration
Usage
Test the game.js module
Unite testing
React Testing Library
Usage
Usage with react-router
Usage with redux
Testing components
Side Effects
Redux Thunk
Dispatch asynchronous actions
Install & configure
Save the game with side effects
Call an API endpoint
Environment variable
Call an API endpoint
Forms
Let's move on to a more advanced step
React final form
What's behind the hood
CreateItemForm, form component
EditItemForm, form component
Delete an item