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.

În contextul Redux Toolkit, un slice este o bucată din starea aplicației care include tot ce ține de o anumită funcționalitate:
State-ul: datele relevante pentru acea parte a aplicației
Reducers: funcții care modifică state-ul în mod predictibil
Action creators: funcții generate automat care declanșează reducer-ele
Import
createSlicedin@reduxjs/toolkitpentru a defini slice-uri Redux cu state și reducers integrateinitialState: obiect care reprezintă starea inițială a slice-uluiuserloggedIn: boolean ce reflectă starea de autentificarecheckTokenLoading: boolean pentru tracking-ul procesului de verificare a token-uluitoken: string saunullpentru token-ul de autentificare
createSlice: generează automat reducer-ul și action creator-ii pentru slice-ulusersetToken: reducer ce seteazătoken, actualizeazăloggedInși persistă token-ul înlocalStoragelogout: reducer ce resetează starea utilizatorului și șterge token-ul dinlocalStoragesetCheckTokenLoading: reducer ce actualizează flag-ul de loading al verificării token-ului
Exporturi:
userSlice.actions→ action creators pentru dispatchuserSlice.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.
În Redux, un reducer este o funcție pură care determină cum se schimbă starea aplicației în funcție de o acțiune (action) primită.
Caracteristici principale:
Pură: nu modifică direct state-ul, ci returnează unul nou (Redux Toolkit permite modificări „mutative” intern folosind Immer)
Primește două argumente:
state– starea curentă (sau slice-ul de stare)action– obiect care descrie ce s-a întâmplat și poate conținepayload
Returnează un nou
stateactualizat
Import
configureStoredin@reduxjs/toolkit– funcție care creează store-ul Redux cu setări implicite bune (ex: middleware, DevTools)Import
userReducer– reducer-ul slice-uluiuserdefinit anteriorconfigureStore({ reducer: { user: userReducer } }):Creează store-ul centralizat
Asociază reducer-ul
userReducerla cheiauserdin statePermite 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