Hei acolo! În calitate de furnizor de reductoare, am văzut direct cât de cruciale sunt reductoarele în diverse industrii, în special în aplicațiile Redux - Toolkit. Deci, să cercetăm cum funcționează un reductor într-o aplicație Redux - Toolkit.
În primul rând, ce este Redux - Toolkit? Este un set de instrumente care simplifică procesul de lucru cu Redux, care este un container de stare previzibil pentru aplicațiile JavaScript. Redux ajută la gestionarea stării unei aplicații într-un mod mai organizat, în special în proiectele mai mari în care urmărirea modificărilor de stare poate deveni destul de dezordonată.
Un reductor în Redux - Toolkit este o funcție pură. Ce înseamnă asta? Ei bine, o funcție pură este una care, având aceeași intrare, va returna întotdeauna aceeași ieșire și nu are efecte secundare. În contextul Redux - Toolkit, un reductor ia starea curentă a aplicației și o acțiune ca intrări și returnează o stare nouă.
Să descompunem asta cu un exemplu. Să presupunem că construim o aplicație simplă pentru lista de activități. Starea aplicației noastre ar putea fi o serie de sarcini, în care fiecare sarcină este un obiect cu proprietăți precumid,titlu, șicompletat.
// Stare inițială const initialState = { tasks: [] }; // Funcția de reducere const taskReducer = (state = initialState, action) => { switch (action.type) { case 'ADD_TASK': return { ...state, tasks: [...state.tasks, action.payload] }; case 'REMOVE_TASK': return { ...state, tasks: state.tasks.filter(task => task.id!== action.payload) }; implicit: stare de returnare; } };
În acest exemplu,taskReducereste funcția noastră de reducere. Începe cu o stare inițială, care este un obiect cu o matrice goală de sarcini. Theacţiuneeste un obiect care are otipproprietate, care descrie ce fel de acțiune dorim să realizăm și o proprietate opționalăîncărcătură utilăproprietate, care poate conține date suplimentare.
Când o acţiune de tipADD_TASKeste expediat, reductorul creează un nou obiect de stare. Răspândește starea existentă folosind operatorul de răspândire (...stat) și apoi actualizeazăsarcinimatrice prin adăugarea noii sarcini dinacţiune.sarcină utilă.
În mod similar, atunci când o acțiune de tipREMOVE_TASKeste expediat, reductorul filtrează sarcina cu dataiddinsarcinimatrice și returnează noua stare.
Într-o aplicație Redux - Toolkit, putem folosicreateSlicefuncția de a simplifica și mai mult procesul de creare a reductoarelor.
import { createSlice } din „@reduxjs/toolkit”; const taskSlice = createSlice({ name: 'tasks', initialState: { tasks: [] }, reductoare: { addTask: (state, action) => { state.tasks.push(action.payload); }, removeTask: (state, action) => { state.tasks = state.tasks = state.tasks.filter();=} action task.idload();= }} export const { addTask, removeTask } = taskSlice.actions; export implicit taskSlice.reducer;
ThecreateSlicefuncția preia un obiect cu anume, aninitialState, și areductoareobiect. În interiorulreductoareobiect, definim acțiunile noastre ca funcții. Observați că putem muta directstatîn interiorul acestor funcţii. Acest lucru se datorează faptului că Redux - Toolkit folosește Immer sub capotă, ceea ce ne permite să scriem cod care arată ca și cum am muta starea, dar de fapt creează un nou obiect de stare.


Acum, să vorbim despre reductoarele din lumea reală pe care le furnizăm. Oferim o gama larga de reductoare, precumReductor concentric din oțel inoxidabil,Reductor excentric din oțel inoxidabil, șiReductor concentric din oțel carbon. Aceste reductoare sunt utilizate în sistemele de conducte pentru a modifica diametrul conductei, ceea ce este crucial pentru controlul fluxului de fluid.
Într-o aplicație Redux - Toolkit, conceptul este similar într-un fel. La fel cum reductoarele noastre fizice controlează fluxul de fluide în conducte, reductoarele dintr-o aplicație Redux - Toolkit controlează fluxul de date și schimbările de stare.
Când o acțiune este trimisă într-o aplicație Redux - Toolkit, aceasta trece prin reductor. Reductorul decide apoi cum să actualizeze starea în funcție de tipul de acțiune și sarcina utilă. Acest proces asigură că schimbările de stare sunt previzibile și ușor de înțeles.
Să presupunem că avem o aplicație mai complexă cu mai multe reductoare. În Redux - Toolkit, putem combina aceste reductoare folosindcombineReductoarefuncţie.
importați { combineReducers } din „@reduxjs/toolkit”; import taskReducer din './taskReducer'; import userReducer din './userReducer'; const rootReducer = combineReducer({ tasks: taskReducer, utilizatori: userReducer }); export implicit rootReducer;
Aici, combinămtaskReduceriar celuserReducerîntr-un singurrootReducer. Starea aplicației noastre va avea acum două proprietăți:sarcinişiutilizatorii, fiecare gestionat de reductorul respectiv.
Într-un scenariu din lumea reală, diferite părți ale unei aplicații ar putea avea cerințe diferite pentru managementul statului. La fel cum avem diferite tipuri de reductoare pentru diferite sisteme de conducte, putem avea diferite reductoare într-o aplicație Redux - Toolkit pentru a gestiona diferite aspecte ale stării aplicației.
Dacă lucrați la un proiect Redux - Toolkit și aveți nevoie de îndrumări cu privire la modul de structurare a reductoarelor sau dacă sunteți în căutarea unor reductoare fizice de înaltă calitate pentru sistemele dvs. de conducte, nu ezitați să contactați. Suntem aici pentru a vă ajuta cu toate nevoile dvs. de reductor, fie că este vorba în lumea digitală Redux - Toolkit sau în lumea fizică a conductelor.
Contactați-ne pentru a începe o discuție de achiziție și pentru a găsi cele mai bune reductoare pentru cerințele dumneavoastră specifice.
Referinte:
- Redux - Documentație oficială Toolkit
- Documentație JavaScript despre funcții pure și imuabilitate
