Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| front:stockage_de_donnees [2025/09/26 12:29] – [Utiliser les actions] paolo | front:stockage_de_donnees [2025/09/29 16:42] (Version actuelle) – [Utiliser les actions] paolo | ||
|---|---|---|---|
| Ligne 11: | Ligne 11: | ||
| * '' | * '' | ||
| * '' | * '' | ||
| - | |||
| ### Monter son Redux store | ### Monter son Redux store | ||
| - | Le store Redux est l’objet qui contient l’état global. Pour le mettre en place, il faut utiliser **Redux Toolkit**: | + | Le store **Redux** est l’objet qui contient l’état global. Pour le mettre en place, il faut utiliser **Redux Toolkit**: |
| - | * On crée des slices (" | + | * Nous créons |
| ``` | ``` | ||
| + | // src/ | ||
| + | |||
| import { createSlice } from " | import { createSlice } from " | ||
| Ligne 48: | Ligne 49: | ||
| ``` | ``` | ||
| - | * On combine | + | * Nous combinons |
| ``` | ``` | ||
| + | // src/ | ||
| + | |||
| import sessionReducer from " | import sessionReducer from " | ||
| Ligne 60: | Ligne 64: | ||
| }); | }); | ||
| - | export const redux = configureStore({ reducer: rootReducer }); | + | export const reduxStore |
| ``` | ``` | ||
| - | On peut aussi exporter toutes les actions du slice dans l' | + | Les actions du slice peuvent aussi être exportées |
| ``` | ``` | ||
| Ligne 69: | Ligne 73: | ||
| ``` | ``` | ||
| - | - On passe ce store à ''< | + | - Ce store est passé au ''< |
| ``` | ``` | ||
| + | // src/ | ||
| + | |||
| import { Provider } from " | import { Provider } from " | ||
| - | import { redux } from " | + | import { reduxStore |
| export const ReduxProvider = (props) => { | export const ReduxProvider = (props) => { | ||
| Ligne 79: | Ligne 85: | ||
| return ( | return ( | ||
| - | < | + | < |
| {children} | {children} | ||
| </ | </ | ||
| Ligne 86: | Ligne 92: | ||
| ``` | ``` | ||
| ``` | ``` | ||
| + | // src/App.jsx | ||
| + | |||
| import { Router } from " | import { Router } from " | ||
| import { ReduxProvider } from " | import { ReduxProvider } from " | ||
| Ligne 97: | Ligne 105: | ||
| }; | }; | ||
| ``` | ``` | ||
| - | Maintenant | + | Désormais |
| + | . | ||
| ### Utiliser l' | ### Utiliser l' | ||
| - | Pour récupérer l' | + | Pour récupérer l' |
| - | Maintenant | + | Maintenant |
| ``` | ``` | ||
| + | // src/ | ||
| + | |||
| import { Outlet, Navigate } from " | import { Outlet, Navigate } from " | ||
| import { useSelector } from " | import { useSelector } from " | ||
| Ligne 115: | Ligne 126: | ||
| ``` | ``` | ||
| ``` | ``` | ||
| + | // src/ | ||
| + | |||
| import { Outlet, Navigate } from " | import { Outlet, Navigate } from " | ||
| import { useSelector } from " | import { useSelector } from " | ||
| Ligne 125: | Ligne 138: | ||
| ``` | ``` | ||
| - | Vous êtes maintenant | + | Nous sommes |
| + | . | ||
| ### Utiliser les actions | ### Utiliser les actions | ||
| - | Reprenons à présent à présent notre requête de connexion et essayons de modifier l' | + | Reprenons à présent à présent notre requête de connexion et essayons de modifier l' |
| ``` | ``` | ||
| + | // src/ | ||
| + | |||
| import { Input } from " | import { Input } from " | ||
| + | import { useDispatch } from " | ||
| + | import { setSession } from " | ||
| + | import { API_URL } from " | ||
| export const Login = () => { | export const Login = () => { | ||
| + | const dispatch = useDispatch(); | ||
| + | | ||
| const handleFormOnSubmit = (e) => { | const handleFormOnSubmit = (e) => { | ||
| e.preventDefault() // empêche le comportement par défaut du formulaire | e.preventDefault() // empêche le comportement par défaut du formulaire | ||
| Ligne 151: | Ligne 172: | ||
| fetch(`${API_URL}/ | fetch(`${API_URL}/ | ||
| .then(response => response.json()) | .then(response => response.json()) | ||
| - | .then(json => setSession(json.data)) | + | .then(json => dispatch(setSession(json.data))) |
| .catch(error => console.error(error)); | .catch(error => console.error(error)); | ||
| }; | }; | ||
| Ligne 161: | Ligne 182: | ||
| ``` | ``` | ||
| - | + | Et voilà vous maîtrisez la base de **Redux**. Il ne vous reste plus qu'à rajouter une fonction de déconnexion (dans votre page **Home** par exemple) et vous avez une application avec un système d' | |