React Redux

React Redux

1. Instalarea dependințelor

Avem nevoie să instalăm libăriile necesare pentru a gestiona starea aplicației într-un mod organizat, eficient și predictibil, mai ales când aplicația devine complexă.

2. Configurarea slice-ului pentru utilizator

În cadrul folderului client, generăm folderul store care va conține la rândul său folderul slices și fișierul store.js.

Pentru început, trebuie să definim slice-ul userSlice.js, care va conține câteva informații care trebuie să fie globale la nivelul aplicației noastre.

circle-check
circle-info
  • Import createSlice din @reduxjs/toolkit pentru a defini slice-uri Redux cu state și reducers integrate

  • initialState: obiect care reprezintă starea inițială a slice-ului user

    • loggedIn: boolean ce reflectă starea de autentificare

    • checkTokenLoading: boolean pentru tracking-ul procesului de verificare a token-ului

    • token: string sau null pentru token-ul de autentificare

  • createSlice: generează automat reducer-ul și action creator-ii pentru slice-ul user

    • setToken: reducer ce setează token, actualizează loggedIn și persistă token-ul în localStorage

    • logout: reducer ce resetează starea utilizatorului și șterge token-ul din localStorage

    • setCheckTokenLoading: reducer ce actualizează flag-ul de loading al verificării token-ului

  • Exporturi:

    • userSlice.actions → action creators pentru dispatch

    • userSlice.reducer → reducer-ul care se înregistrează în store-ul Redux

3. Crearea și configurarea store-ului Redux

În cadrul fișierului store.js, avem grijă să importăm slice-ul abia creat pentru utilizator și să contruim store-ul pe baza acestuia.

circle-check
circle-info
  • Import configureStore din @reduxjs/toolkit – funcție care creează store-ul Redux cu setări implicite bune (ex: middleware, DevTools)

  • Import userReducer – reducer-ul slice-ului user definit anterior

  • configureStore({ reducer: { user: userReducer } }):

    • Creează store-ul centralizat

    • Asociază reducer-ul userReducer la cheia user din state

    • Permite ca starea utilizatorului să fie accesată în aplicație prin state.user

  • Export store – store-ul este folosit în <Provider store={store}> din React pentru a oferi acces la Redux în toată aplicația

4. Conectarea store-ului Redux la aplicația React

În acest pas, importăm store-ul creat anterior în main.jsx și îl înfășurăm cu componenta <Provider> din react-redux.

Astfel, starea globală gestionată de Redux devine accesibilă tuturor componentelor aplicației prin hook-urile useSelector și useDispatch. Aceasta este etapa prin care integrarea Redux devine activă în aplicația React.

Last updated