SlideShare a Scribd company logo
Formation
Redux
Niveau Avancé
Une formation
Sandy LUDOSKY
Cursus Redux
Une formation
Introduction
1. Rappel des fondamentaux de Redux
projet: Gestionnaire de contacts
2. Découvrir les concepts avancés de Redux
3. Utiliser les hooks
4. Tester avec Redux
5. Persister les valeurs globales
Conclusion
Plan de la formation
Une formation
Développeurs Front
Intégrateurs web
Chefs et facilitateurs de projet
Public concerné
Une formation
Public concerné
Développeurs Front
Intégrateurs web
Chefs et facilitateurs de projet
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 5
Notions de javascript
Librairies JS Front (React, Angular, Vue ...)
Alphorm.com Formation Redux : Niveau Avancé
Présentation du projet
Une formation
Sandy LUDOSKY
Présentation du projet
Présentation du projet
Présentation du projet
Ressources et outils
Une formation
Sandy LUDOSKY
Une formation
Ressources & outils
Visual Studio Code
Node.js & Npm
React 17+ / React CLI
React Developer Tools
Redux Developer Tools
Une formation
Visual Studio Code
Ressources & outils
Une formation
Node.js & Npm
Ressources & outils
Une formation
Ressources & outils
React 17+ / React CLI
React Developer Tools
Une formation
Visual Studio Code
Node.js & Npm
React 17+ / React CLI
React Developer Tools
Redux Developer Tools
Ressources & outils
Une formation
Les ressources
Les fichiers téléchargeables 📁
Les outils ⚙
Ressources & outils
Une formation
Sandy LUDOSKY
Découvrir le projet
de démarrage
Une formation
Projet de démarrage
Télécharger le projet 📁
Anatomie et dépendances du projet
Une formation
Sandy LUDOSKY
Gérer les valeurs globales avec les
créateurs d’actions, le reducer et le
store
Actions, reducer & store
Cycle de vie unidirectionnel
UI=> actions => store
store => state => UI
Flux de données
REDUCER STORE
U
I
Action
REDUCER STORE
U
I
Une formation
Créateur d’action
{
type: “ADD_TODO“
payload : {}
}
Actions, reducer & store
Créateur d’action
Une formation
Fonction reducer
function reducer(state = initialState, action)
{
switch(action.type) {
case “TYPE” : return {}
}
}
Fonction reducer
Configurer le store
Une formation
Sandy LUDOSKY
Distribuer des actions pour
des nouveaux contacts
Dispatch
dispatch({
type: 'ADD_TODO,
payload: 'Learn about actions'
})
Une formation
Sandy LUDOSKY
S’abonner aux mises à jour du
store avec le composant Provider
Composant Provider
ReactDOM.render(
<Provider store={store}>
<App />
</Provider>,
document.getElementById('root')
)
Une formation
Sandy LUDOSKY
Connecter les composants React
au store avec connect()
connect()
export default connect(
mapStateToProps,
mapDispatchToProps
)(TodoApp)
Une formation
Sandy LUDOSKY
Débugger avec les Redux
DevTools
Une formation
Developer Tools
React developer tools ⚛
Redux developer tools
Une formation
Sandy LUDOSKY
Conclusion
Introduction
aux concepts avancés Redux
Une formation
Sandy LUDOSKY
Une formation
Concepts avancés Redux
CombineReducers
CreateSelector
applyMiddleware
compose
Une formation
Démo
Une formation
Sandy LUDOSKY
Fractionner la gestion d’état
combineReducers
combineReducers
combineReducers({
todos: TodosReducer,
filter: FiltersReducer
})
Une formation
Sandy LUDOSKY
Créer des états dérivés avec les
selectors
États dérivés avec les selectors
export const selectItems =
(state) => state.items;
Une formation
Sandy LUDOSKY
Créer des selectors avec
createSelector
createSelector
const selectContacts =
createSelector()
const selectState = (state) =>
state.contacts
export const selectContacts = createSelector(
selectState, (contacts) => {
return `You have ${contacts} in your list`
})
createSelector
Une formation
Sandy LUDOSKY
Comprendre les middlewares
Une formation
Définition
Programme entre d'autres
applications afin de fournir des
fonctionnalités supplémentaires
Une formation
Comprendre les middlewares
Fonctions asynchrones
Rapports d’activités
Rapports d’incidents
Les middleware
export default
createStore(rootReducer,
applyMiddleware(...[thunk,
logger])
);
Une formation
Sandy LUDOSKY
Utiliser le middleware Redux
Thunk
Le middleware Redux Thunk
source : https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware
Une formation
Les fonctions thunk
Permet d’exécuter la logique asynchrone
Distribuer des actions
Lire l'état du magasin si nécessaire
Utiliser le middleware Redux Thunk
export default
createStore(reducer,
applyMiddleware(thunk)
);
Une formation
Sandy LUDOSKY
Imbriquer les fonctions avec
compose()
Une formation
Imbriquer plusieurs fonctions
Utilitaire de programmation fonctionnel pour imbriquer
plusieurs fonctions
Gauche à droite
Plusieurs optimisateurs fournis au store
Imbriquer les fonctions avec compose()
compose(...functions)
Une formation
Sandy LUDOSKY
Créer un custom middleware
Une formation
Créer un logger
Pour suivre et afficher les actions
distribuées au store
ApplyMiddleware
export default
createStore(reducer,
applyMiddleware(...[thunk,
logger])
);
Une formation
Sandy LUDOSKY
Utiliser un custom middleware
Une formation
Custom middleware
Suivre actions distribuées au store
Afficher les logs dans la console
Utiliser un custom middleware
previous state ➡ {contacts: {…}, filters: {…}, _persist: {…}}
action : {type: "REMOVE_CONTACT", payload: {…}}
new state after dispatch ➡ {contacts: {…}, filters: {…}, _persist: {…}}
Une formation
Sandy LUDOSKY
Regrouper les actions
bindActionCreators
bindActionCreators
bindActionCreators(
actionCreators,
dispatch)
Une formation
Sandy LUDOSKY
Réunir les props
mergeProps
mergeProps
connect(
mapStateToProps,
mapDispatchToProps,
mergeProps)
Une formation
Sandy LUDOSKY
Conclusion
Une formation
Sandy LUDOSKY
Utiliser les redux hooks
Une formation
Les hooks
useDispatch()
useSelector()
Une formation
Sandy LUDOSKY
Distribuer des actions
useDispatch()
useDispatch
import React from 'react'
import { useDispatch } from 'react-redux'
const dispatch = useDispatch()
<button onClick={() => dispatch({ type: 'increment-counter'
})}> Increment counter
</button>
Une formation
Sandy LUDOSKY
Souscrire aux mises à jour du
store useSelector()
useSelector
import React from 'react'
import { useSelector } from 'react-redux'
export const CounterComponent = () => {
const counter = useSelector(state => state.counter)
return <div>{counter}</div>
}
Introduction
Écrire des tests unitaires avec Redux
Une formation
Sandy LUDOSKY
Une formation
Écrire des tests unitaires avec Redux
Mise en place test unitaires
Créer des jeux de données (mocks)
Une formation
Démo
Une formation
Sandy LUDOSKY
Tester les actions
Une formation
Tester les actions
describe()
it()
expect()
Une formation
Sandy LUDOSKY
Tester les reducers
Une formation
Tester les reducer
describe()
it()
expect()
Une formation
Sandy LUDOSKY
Découvrir
le paquet redux-resist
Une formation
Paquet redux-resist
persistConfig = {}
persistReducer()
persistStore()
persistGate
persistConfig = {}
const persistConfig = {
key: 'root',
storage,
}
persistReducer()
const persistedReducer =
persistReducer(persistConfig,
rootReducer)
persistStore()
export default () => {
let store = createStore(persistedReducer)
let persistor = persistStore(store)
return { store, persistor }
}
Une formation
Sandy LUDOSKY
Créer un objet persistConfig
persistConfig
const persistConfig = {
key: 'root',
storage,
}
Une formation
Sandy LUDOSKY
Utiliser la méthode
persistReducer
persistReducer
const persistedReducer =
persistReducer(persistConfig,
rootReducer)
Une formation
Sandy LUDOSKY
Utiliser la méthode
persistStore
persistStore
export default () => {
let store = createStore(persistedReducer)
let persistor = persistStore(store)
return { store, persistor }
}
Une formation
Sandy LUDOSKY
Utiliser le composant
persistGate
persistGate
import { PersistGate } from 'redux-persist/integration/react'
const App = () => {
return (
<Provider store={store}>
<PersistGate loading={null} persistor={persistor}>
<RootComponent />
</PersistGate>
</Provider>
);
};
Conclusion
Une formation
Sandy LUDOSKY
Une formation
Bilan
Démarrer avec Redux
La référence API : les fondamentaux
Installation & Usage
Projet React : gestionnaire de contacts
Projet React : gestion état application avec
Redux
Rappel Cursus Redux
Alphorm.com Formation Redux : Niveau Avancé

More Related Content

PDF
Alphorm.com Formation Redux : Niveau Initiation
PDF
Alphorm.com Formation React Testing Library
PDF
Drupal training-by-ruchiwebsolutions
PDF
Microservices: Improving the autonomy of our teams with Event-Driven Architec...
PDF
Avoiding the domino effect in our [micro]services (SOLID at macro-design level)
PDF
HTML CSS JavaScript jQuery Training
PDF
Multi criteria queries on a cassandra application
ODP
Pyramid tutorial
Alphorm.com Formation Redux : Niveau Initiation
Alphorm.com Formation React Testing Library
Drupal training-by-ruchiwebsolutions
Microservices: Improving the autonomy of our teams with Event-Driven Architec...
Avoiding the domino effect in our [micro]services (SOLID at macro-design level)
HTML CSS JavaScript jQuery Training
Multi criteria queries on a cassandra application
Pyramid tutorial

Similar to Alphorm.com Formation Redux : Niveau Avancé (20)

PPSX
React-Js-Online-Training-9028522.ppsx
PPTX
React js Online Training
PDF
Redux js
PDF
Angular2 and Redux - up & running - Nir Kaufman - Codemotion Amsterdam 2016
PDF
Redux Deep Dive - ReactFoo Pune 2018
PDF
Understanding redux
PPTX
PDF
React Redux Interview Questions PDF By ScholarHat
PDF
React Redux Interview Questions PDF By ScholarHat
PDF
Getting started with React and Redux
PPTX
downloads_introduction to redux.pptx
PDF
React Redux Tutorial | Redux Tutorial for Beginners | React Redux Training | ...
PDF
redux and angular - up and running
PDF
Materi Modern React Redux Power Point.pdf
PPTX
Redux workshop
PPTX
Redux Tech Talk
PDF
Building Modern Web Applications using React and Redux
PDF
How to use redux with react hooks in react native application
PDF
Redux tutorial - intro to Redux by GetLittleTech
PPTX
React js programming concept
React-Js-Online-Training-9028522.ppsx
React js Online Training
Redux js
Angular2 and Redux - up & running - Nir Kaufman - Codemotion Amsterdam 2016
Redux Deep Dive - ReactFoo Pune 2018
Understanding redux
React Redux Interview Questions PDF By ScholarHat
React Redux Interview Questions PDF By ScholarHat
Getting started with React and Redux
downloads_introduction to redux.pptx
React Redux Tutorial | Redux Tutorial for Beginners | React Redux Training | ...
redux and angular - up and running
Materi Modern React Redux Power Point.pdf
Redux workshop
Redux Tech Talk
Building Modern Web Applications using React and Redux
How to use redux with react hooks in react native application
Redux tutorial - intro to Redux by GetLittleTech
React js programming concept
Ad

More from Alphorm (20)

PDF
Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...
PDF
Alphorm.com Formation Google Sheets : Créer un Tableau de Bord Collaboratif a...
PDF
Alphorm.com Formation CCNP ENCOR 350-401 (6of8) : Sécurité
PDF
Alphorm.com Formation Vue JS 3 : Créer une application de A à Z
PDF
Alphorm.com Formation Blockchain : Maîtriser la Conception d'Architectures
PDF
Alphorm.com Formation Sage : Gestion Commerciale
PDF
Alphorm.com Formation PHP 8 (2/6) : L'héritage en orienté objet
PDF
Alphorm.com Formation Excel 2019 : Concevoir un Tableau de Bord Interactif
PDF
Alphorm.com Formation Maya 3D : Créer un Design d'intérieur au Style Isométrique
PDF
Alphorm.com Formation VMware vSphere 7 : La Mise à Niveau
PDF
Alphorm.com Formation Apprendre les bonnes pratiques de CSS avec BEM : OOCSS ...
PDF
Alphorm.com Formation Unity : Monétiser votre jeu 3D sur les plateformes Mobiles
PDF
Alphorm.com Formation PHP 8 : Les bases de la POO
PDF
Alphorm.com Formation Power BI : Transformation de Données avec DAX et Power ...
PDF
Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...
PDF
Alphorm.com Formation Améliorer le développement avec CSS-in-JS _ Styled Comp...
PDF
Alphorm.com Formation Unity (6/7) : Maitriser l'Intelligence Artificielle de ...
PDF
Alphorm.com Formation Architecture Microservices : Jenkins et SpringBoot
PDF
Alphorm.com Formation Active Directory 2022 : Multi Sites et Services
PDF
Alphorm.com Formation Vue JS 3 : Exploiter la Composition API
Alphorm.com Formation Microsoft 365 (MS-500) : Administrateur Sécurité - Prot...
Alphorm.com Formation Google Sheets : Créer un Tableau de Bord Collaboratif a...
Alphorm.com Formation CCNP ENCOR 350-401 (6of8) : Sécurité
Alphorm.com Formation Vue JS 3 : Créer une application de A à Z
Alphorm.com Formation Blockchain : Maîtriser la Conception d'Architectures
Alphorm.com Formation Sage : Gestion Commerciale
Alphorm.com Formation PHP 8 (2/6) : L'héritage en orienté objet
Alphorm.com Formation Excel 2019 : Concevoir un Tableau de Bord Interactif
Alphorm.com Formation Maya 3D : Créer un Design d'intérieur au Style Isométrique
Alphorm.com Formation VMware vSphere 7 : La Mise à Niveau
Alphorm.com Formation Apprendre les bonnes pratiques de CSS avec BEM : OOCSS ...
Alphorm.com Formation Unity : Monétiser votre jeu 3D sur les plateformes Mobiles
Alphorm.com Formation PHP 8 : Les bases de la POO
Alphorm.com Formation Power BI : Transformation de Données avec DAX et Power ...
Alphorm.com Formation Techniques de Blue Teaming : L'Essentiel pour l'Analyst...
Alphorm.com Formation Améliorer le développement avec CSS-in-JS _ Styled Comp...
Alphorm.com Formation Unity (6/7) : Maitriser l'Intelligence Artificielle de ...
Alphorm.com Formation Architecture Microservices : Jenkins et SpringBoot
Alphorm.com Formation Active Directory 2022 : Multi Sites et Services
Alphorm.com Formation Vue JS 3 : Exploiter la Composition API
Ad

Recently uploaded (20)

PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Machine learning based COVID-19 study performance prediction
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PDF
cuic standard and advanced reporting.pdf
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPT
Teaching material agriculture food technology
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
KodekX | Application Modernization Development
Digital-Transformation-Roadmap-for-Companies.pptx
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Understanding_Digital_Forensics_Presentation.pptx
Machine learning based COVID-19 study performance prediction
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
cuic standard and advanced reporting.pdf
“AI and Expert System Decision Support & Business Intelligence Systems”
Per capita expenditure prediction using model stacking based on satellite ima...
Dropbox Q2 2025 Financial Results & Investor Presentation
Mobile App Security Testing_ A Comprehensive Guide.pdf
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Teaching material agriculture food technology
NewMind AI Monthly Chronicles - July 2025
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Network Security Unit 5.pdf for BCA BBA.
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
Encapsulation_ Review paper, used for researhc scholars
KodekX | Application Modernization Development

Alphorm.com Formation Redux : Niveau Avancé