Formation
Redux
Niveau Initiation
Une formation
Sandy LUDOSKY
Une formation
Cursus Redux
Une formation
Introduction
1. Présentation de la formation
2. Démarrer avec Redux
3. Application monopage en ReactJS :
projet: Gestionnaire de contacts
1. Ajouter Redux à son application
2. Connecter Redux aux composants React
Conclusion
Plan de la formation
Une formation
● Développeurs Front
● Intégrateurs web
● Chefs et facilitateurs de projet
Public concerné
Une formation
● Développeurs Front
● Intégrateurs web
● Chefs et facilitateurs de projet
Public concerné
Une formation
● Développeurs Front
● Intégrateurs web
● Chefs et facilitateurs de projet
Public concerné
Une formation
Connaissances requises
● HTML & CSS
● Expérience avec Bootstrap 4
● Notions de javascript
● Librairies JS Front (React, Angular, Vue ...)
Présentation du projet
Une formation
Sandy LUDOSKY
Une formation
Projet : gestionnaire de contacts
Une formation
Architecture Redux
Ressources et outils
Une formation
Sandy LUDOSKY
Une formation
Ressources & outils
● Visual Studio Code
● Node.js & Npm
● React 16+ / React CLI
● React Developer Tools
● Redux Developer Tools
Une formation
Ressources & outils
● Visual Studio Code
● Node.js & Npm
● React 16+ / React CLI
● React Developer Tools
● Redux Developer Tools
Une formation
Ressources & outils
● Visual Studio Code
Une formation
Ressources & outils
● Visual Studio Code
● Node.js & Npm
● React 16+ / React CLI
● React Developer Tools
● Redux Developer Tools
Une formation
Ressources & outils
● Node.js & Npm
Une formation
Ressources & outils
● Visual Studio Code
● Node.js & Npm
● React 16+ / React CLI
● React Developer Tools
● Redux Developer Tools
Une formation
Ressources & outils
Une formation
Ressources & outils
● Visual Studio Code
● Node.js & Npm
● React 16+ / React CLI
● React Developer Tools
● Redux Developer Tools
Une formation
Ressources & outils
● Visual Studio Code
● Node.js & Npm
● React 16+ / React CLI
● React Developer Tools
● Redux Developer Tools
Une formation
Ressources & outils
● les ressources
● les fichiers téléchargeables 📁
● les outils ⚙
Une formation
Ressources & outils
● les ressources
● les fichiers téléchargeables 📁
● les outils ⚙
Une formation
Sandy LUDOSKY
Redux Kezako ?
Une formation
Redux Kezako ?
● Librairie JS open-source
● Gestion d’état centralisée
● Un conteneur d’état prévisible pour les
application JS
Une formation
● Centralisée : une seule source de vérité
● Flexible
● Facilement débogable
● Facile à tester et prévisible
Redux Kezako ?
Une formation
Dan Abramov & Andrew Clark
Ses créateurs
Une formation
Dan Abramov & Andrew Clark
Ses créateurs
Découvrir les origines et
évolutions de Redux
Une formation
Sandy LUDOSKY
Une formation
En bref
● Bibliothèque javascript open-source
● première version : 2 juin 2015
● Ses créateurs : Dan Abramov & Andrew Clark
Une formation
Inspirations
● architecture Flux
● programmation fonctionnelle : langage ELM
Une formation
Quelques chiffres
● dépot github : > 53k ✦
● npm react-redux : > 4.6 téléchargements
● npm react-redux : > 3.5 téléchargements
Découvrir les principaux concepts et avantages
d’ajouter Redux à son application
Une formation
Sandy LUDOSKY
Une formation
Avantages Redux
● Centralisée : une seule source de vérité
● Flexible et prévisible
● Facile à déboguer et à tester
Une formation
Avantages Redux
● Excellent outil de développement
● Structure commune et modulaire
● Non exclusif
Une formation
Avantages Redux
● Les recommandations de son créateur :
Dan Abramov
source = https://medium.com/@dan_abramov/you-might-not-need-redux-be46360cf367
Une formation
Sandy LUDOSKY
Organiser l'environnement
de travail
Une formation
Besoin
● node -v
● npm -v
● npm view react version
Découvrir les concepts clés
Une formation
Sandy LUDOSKY
Une formation
Présentation & concepts clés
Gestion état & cycle de vie
Créateurs d’actions
Function reducer
Store
Gestion état & cycle de vie
Global, centralisé & partagé
Flux de données unidirectionnelle
Actions
Etat
View
Une formation
Créateurs d’actions
Objet (type, payload)
Distribue action
const ACTION = “ACTION”
Une formation
Fonction reducer
(state, action) => newState
Reçoit les actions
Renvoie le state
Une formation
Store
Contient le state
Un seul store : single source of truth
const store = createStore(reducer)
Une formation
Sandy LUDOSKY
Installer Redux
Une formation
Installer Redux
● https://redux.js.org/introduction/installation
Une formation
Installer Redux
● https://redux.js.org/introduction/installation
Une formation
Sandy LUDOSKY
Définir les actions
Une formation
Définition
Les actions sont de simples objets JS qui
envoient des données de votre application
au store
Une formation
Définir les actions
store.dispatch()
Une formation
Définir les actions
Les actions sont définies sous forme de
constantes :
Une formation
Définir les actions
Les actions sont des objets JS avec :
● type
● payload
Une formation
Sandy LUDOSKY
Comprendre
les créateurs d'actions
Une formation
Sandy LUDOSKY
Découvrir la fonction
Reducer
Une formation
Définition
Dans Redux, l'état de l'application est
stocké comme un seul objet
Une formation
Sandy LUDOSKY
Comprendre le Store
Une formation
Définition
Le store est l’objet qui contient
l’état de l’application
Une formation
Actions
● getState()
● dispatch(action)
● subscribe(listener)
Une formation
Code source
Une formation
Sandy LUDOSKY
Comprendre
le Flux de données
Une formation
Le Flux de données
Une formation
Sandy LUDOSKY
Découvrir le projet
de démarrage
Une formation
Projet de démarrage
Fichiers téléchargeables 📁
Ressources
Préparer l’environnement
de travail
Une formation
Sandy LUDOSKY
Une formation
Outils et ressources
node –v
npm –v
npm view react version
Une formation
Sandy LUDOSKY
Installer les outils et
dépendances
Une formation
Installer les dépendances
npm install -g create-react-app
https://create-react-app.dev/docs/getting-started/
Démarrer avec Redux Toolkit
Une formation
Sandy LUDOSKY
Une formation
Redux Toolkit
Outils officiels et recommandés pour
assurer le développement facile et
efficace de l’architecture Redux
Installation
Une formation
API
configureStore()
createReducer()
createAction()
createSlice()
Une formation
Démo
Démarrer avec Redux Toolkit
Basic Demo
Une formation
Sandy LUDOSKY
Installation
Une formation
Exemple Counter
createAction()
createReducer()
configureStore()
Une formation
Démo
Installer la librairie
core Redux
Une formation
Sandy LUDOSKY
Une formation
Librairie Core Redux
Usage libre et plus flexible
Aucune méthode d’implémentation
imposée
Installation
Autres Libraries
Ajouter Redux devTools
Une formation
Sandy LUDOSKY
Une formation
Projet open-source/extension chrome
Historique des actions envoyées
Débogage des changements d’état
Redux Developer Tools
Chrome Web Store
Redux DevTools
Usage
const store = createStore(
reducer,
/*preloadedState*/,
[enhancer]
)
Usage
const store = createStore(
reducer,
/*preloadedState*/,
window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__()
)
Une formation
Sandy LUDOSKY
Finaliser le projet React
Une formation
Sandy LUDOSKY
Définir et créer les actions
Une formation
Définir et créer
1. les actions
2. le reducer
3. et, le store
Introduction
Projet gestionnaire de contacts
Une formation
Sandy LUDOSKY
Gestionnaire de contacts
Une formation
1. Projet de démarrage & installation
2. Afficher liste de contact
3. Filtrer la liste de contact
4. Editer/supprimer contact (fonctions)
5. Ajouter nouveau contact
Plan
Une formation
Démo
Télécharger le projet
de démarrage
Une formation
Sandy LUDOSKY
Une formation
Fichiers téléchargeables 📁
Ressources
yarn install
Gestionnaire de contacts
Afficher la liste de contacts
Une formation
Sandy LUDOSKY
Liste de contacts
Une formation
Démo
Filtrer la liste de contacts
Une formation
Sandy LUDOSKY
Filtrer
Business contacts
Family contacts
Une formation
Démo
Editer et supprimer un contact
Fonctions
Une formation
Sandy LUDOSKY
Edit & remove
Remove
Une formation
Démo
edit & remove
Ajouter un nouveau contact
Une formation
Sandy LUDOSKY
Ajouter nouveau contact
Une formation
Démo
Valider le formulaire avec
JavaScript
Une formation
Sandy LUDOSKY
Validation Formulaire
Une formation
Démo
Introduction
Projet Gestion d’état d’application
Une formation
Sandy LUDOSKY
Une formation
Fichiers téléchargeables 📁
Ressources
yarn install
Gestion d’état avec Redux
Une formation
Définir et créer
Les actions
Le reducer
Le store
Une formation
Démo
Une formation
Sandy LUDOSKY
Comprendre les conteneurs
et composants
Une formation
Définition
Les liaisons React pour Redux séparent
les composants de conteneur et les
composants de présentation
Une formation
Rôle
Récupère les données et met à jour de l’état du
composant
détient la logique
dispatch les actions
reçoit les données (props)
décrit l’aspect du composant
lit les données (props)
appelle les fonctions de rappel
présente le visuel (html ...)
Créer et définir des actions
Une formation
Sandy LUDOSKY
Type (constante)
Une formation
Simples objets JS qui envoient des
données de votre application au store
Les actions
Une formation
Type
Payload
Objet JS simple
Une formation
{
type: “ADD_TODO“
payload : {}
}
Définir & Créer des actions
addTodo
Une formation
store.dispatch(action)
Dispatch action
Une formation
store.dispatch(addTodo(args))
Dispatch addTodo
Une formation
Démo
Une formation
Sandy LUDOSKY
Utiliser connect(), mapStateToProps et
mapDispatchToProps
Une formation
Arguments de connect()
Prend 2 arguments
mapStateToProps
mapDispatchToProps
Une formation
mapStateToProps
Reçoit les données du store
Appelé à chaque changement de l’état du
store
Une formation
mapDispatchToProps
Dispatch les actions au store
état du store modifié suite au dispatch des
actions
Une formation
Sandy LUDOSKY
Persister les données en local
avec localstorage
Une formation
Pourquoi?
pour persister des données dans le
stockage du navigateur
Une formation
Ajouter dans localstorage
localStorage.setItem('monChat', 'Tom');
Une formation
Récupérer depuis localstorage
var cat = localStorage.getItem('myCat');
Une formation
Récupérer du localstorage
localStorage.removeItem('myCat');
Une formation
Efface le localstorage
localStorage.clear();
Gérer l’état avec la fonction
Reducer
Une formation
Sandy LUDOSKY
Une formation
Redux
L'état de l'application est stocké comme
un seul objet
Une formation
function reducer(state, action) {
switch(action.type) {
case “TYPE” : return {}
}
}
La fonction reducer
Une formation
function reducer(state = initialState, action)
{
switch(action.type) {
case “TYPE” : return {}
}
}
La fonction reducer
La fonction reducer
Une formation
Démo
Une formation
Sandy LUDOSKY
Découvrir
les Redux Dev Tools
Une formation
Outil de développement
Historique des actions envoyées
Débogage des changements d’état
Chrome Web Store
Usage
Configurer le store
Une formation
Sandy LUDOSKY
Une formation
Le store
L’objet qui contient l’état de l’application
const store =
createStore(reducer,[initialState],[enhancer])
Configurer le store
Code source
Code source
Une formation
getState()
dispatch(action)
subscribe(listener)
l’API
Une formation
Démo
Dispatcher des actions
Une formation
Sandy LUDOSKY
Une formation
getState()
dispatch(action)
subscribe(listener)
l’API
Une formation
Configurer le store
import store from './store'
Une formation
Configurer le store
console.log('Initial state:
', store.getState())
Une formation
Configurer le store
const unsubscribe =
store.subscribe(() =>
console.log('State after dispatch:
', store.getState())
)
Une formation
Configurer le store
store.dispatch({ type:
'todos/todoAdded', payload: 'Learn
about actions' })
unsubscribe()
Une formation
Démo
Comprendre
le conteneur et le composant
Une formation
Sandy LUDOSKY
Une formation
Conteneur et Composant
Les liaisons React pour Redux séparent les
composants de conteneur et les
composants de présentation
Une formation
Composant de conteneur
Récupère les données et met à jour de l’état
du composant
Détient la logique
Dispatch les actions
Reçoit les données (props)
Une formation
Composant de présentation
Décrit l’aspect du composant
Reçoit les props du store
Reçoit les intéractions de l’utilisateur
Lit les données (props)
Appelle les fonctions de rappel
Présente le visuel (html ...)
Une formation
Démo
Relier avec le HOC connect()
Une formation
Sandy LUDOSKY
Une formation
connect()
Composant d’ordre supérieur
2 arguments
mapStateToProps
mapDispatchToProps
Une formation
mapStateToProps
Reçoit les données du store
Appelé à chaque changement de l’état
du store
Une formation
mapDispatchToProps
Dispatch les actions au store
Etat du store modifié suite au dispatch
des actions
Une formation
Démo
Extraire des données avec
mapStateToProps
Une formation
Sandy LUDOSKY
mapStateToProps
Appelé chaque fois que le state change
Reçoit l'intégralité de l'état du store et renvoie un objet de données
dont le composant a besoin
Une formation
connect() = composant ordre supérieur
Relie le composant avec le store
2 paramètres
mapStateToProps()
mapDispatchToProps()
Une formation
Extraction des données
export default connect(
mapStateToProps,
mapDispatchToProps)(TodoApp)
Une formation
Démo
Dispatcher des actions avec
mapDispatchToProps
Une formation
Sandy LUDOSKY
mapDispatchToProps
Permet de distribuer des fonctions aux composants
Appelé pour dispatch des actions au store
export default connect(
mapStateToProps,
mapDispatchToProps)(TodoApp)
Une formation
connect() = composant order supérieur
Relie le composant avec le store
2 paramètres
mapStateToProps()
mapDispatchToProps()
Une formation
Démo
Conclusion
Une formation
Sandy LUDOSKY
Une formation
Bilan
1. Démarrer avec Redux
2. La référence API : les fondamentaux
3. Installation & Usage
4. Projet React : gestionnaire de contacts
5. Projet React : gestion état application
avec Redux
Une formation
Prochaine Formation
Alphorm.com Formation Redux : Niveau Initiation

Alphorm.com Formation Redux : Niveau Initiation