Hogyan használjunk horgokkal ellátott reduktort a Reactban?

Dec 30, 2025

Hagyjon üzenetet

Szia! Ha szereti a Reactot, és reduktorokkal szeretné feldobni a játékát, akkor jó helyen jár. Nem csak egy véletlenszerű technológiai rajongó vagyok; Valójában reduktor beszállító vagyok. Igen, tudom, kicsit résen hangzik, de nagyon klassz koncert. Tehát nézzük meg, hogyan kell használni a horgokkal ellátott reduktort a React-ban.

Egyébként mi az a reduktor?

Először is, a reduktor egy tiszta függvény, amely az aktuális állapotot és egy műveletet veszi argumentumként, és új állapotot ad vissza. Olyan, mint egy kis állapotváltó gép. Dióhéjban: segít előre kiszámítható módon kezelni az alkalmazás állapotát.

Tegyük fel, hogy egy egyszerű teendőket tartalmazó alkalmazást készít. Van egy listája a feladatokról, és szeretne feladatokat hozzáadni, eltávolítani vagy befejezettként megjelölni. Mindezek a műveletek egy reduktorral kezelhetők.

Például itt van egy alapvető szűkítő funkció a teendőink listájához:

const todoReducer = (állapot, művelet) => { switch (action.type) { case 'ADD_TASK': return [...state, action.task]; case 'REMOVE_TASK': return state.filter(task => task.id!== action.id); case 'COMPLETE_TASK': return state.map(task => task.id === action.id? {...feladat, befejezve: igaz } : feladat ); alapértelmezett: visszatérési állapot; } };

Ebben a kódban atodoReducerfüggvény veszi az áramotállami(ami egy sor feladatok) és egyakció. Attól függően, hogy aaction.type, új állapotot ad vissza.

Reduktor használata horgokkal a Reactban

Most beszéljünk arról, hogyan kell használni ezt a szűkítőt horgokkal a Reactban. A React egy horogot biztosítuseReducerami rendkívül egyszerűvé teszi a reduktorok beépítését a funkcionális alkatrészekbe.

A következőképpen használhatja fel egy összetevőben:

import React, { useReducer } from'react'; const todoReducer = (állapot, művelet) => { switch (action.type) { case 'ADD_TASK': return [...state, action.task]; case 'REMOVE_TASK': return state.filter(task => task.id!== action.id); case 'COMPLETE_TASK': return state.map(task => task.id === action.id? {...feladat, befejezve: igaz } : feladat ); alapértelmezett: visszatérési állapot; } }; const inicialState = []; const TodoApp = () => { const [teendők, küldés] = useReducer(todoReducer, kezdeti állapot); const addTask = (feladat) => { dispatch({ típus: 'ADD_TASK', feladat }); }; const removeTask = (id) => { dispatch({ type: 'REMOVE_TASK', id }); }; const completeTask = (id) => { dispatch({ type: 'COMPLETE_TASK', id }); }; return ( <div> <h1>Teendők listája</h1> <input type="text" placeholder="Feladat hozzáadása" onKeyDown={(e) => { if (e.key === 'Enter') { addTask({ id: Date.now(), text: e.target.value, befejezve: false };''>. } e = } / 'tar }); {todos.map(task => ( <li key={task.id}> <span style={{ textDecoration: task.completed? 'line - through' : 'none' }}> {task.text} </span> <button onClick={() => removeTask(task.id)}>RemoveTask(task.id)}>Remove completeTask(task.id)}> {task.completed? 'Uncompleted' : 'Complete'} </button> </li> ))} </ul> </div> ); }; az alapértelmezett TodoApp exportálása;

EbbenTodoAppkomponenst használunkuseReducerhogy kezeljük a teendőink listáját. AuseReducerhorog visszaadja az áramotállami(ebben az esetbenminden) és afeladásfunkció. AfeladásA funkció műveletek küldésére szolgál a reduktornak.

Amikor a felhasználó beír egy feladatot a beviteli mezőbe, és megnyomja az Enter billentyűt, aaddTaskfüggvényt hívjuk meg, amely egy típusú műveletet küld el"ADD_TASK". A reduktor ezután felveszi az aktuális állapotot, és hozzáadja az új feladatot.

A reduktorok típusai a való világban

Reduktor beszállítóként különböző típusú reduktorokkal foglalkozom. A vízvezetékek világában (ez egy másfajta reduktor, de még mindig menő) van néhány gyakori típus.

Az egyik típus aButtweld koncentrikus reduktor. Két különböző átmérőjű cső egyenes vonalú összekötésére szolgál. Egy másik típus aMenetes szűkítő, amelyet akkor használnak, ha menetes végű csöveket kell csatlakoztatni. És akkor ott van aExcentrikus hegesztési reduktor, amelyet akkor használnak, ha a két cső középvonalát el kell tolni.

Érdekes, hogy a reduktor fogalma különböző területeken létezik, de az alapötlet, hogy vegyünk valamit és változtassunk valami mássá, ugyanaz marad.

A horgokkal ellátott szűkítők használatának előnyei

A Reactban horgokkal ellátott reduktorok használata számos előnnyel jár.

Eccentric Weld ReducerEccentric Weld Reducer

Először is kiszámíthatóbbá teszi a kódot. Mivel a reduktor egy tiszta függvény, mindig ugyanazt a kimenetet adja vissza ugyanahhoz a bemenethez. Ez azt jelenti, hogy egyszerűen tesztelheti reduktorait, és megértheti, hogyan változik az állapot az alkalmazásban.

Másodszor, segít a komplex államigazgatásban. Nagyobb alkalmazásoknál az állapot nagyon bonyolulttá válhat. A reduktorok használatával az államgazdálkodást kisebb, jobban kezelhető darabokra bonthatja.

Végül javítja a kód olvashatóságát. A reduktorok használatakor egyértelmű, hogy milyen műveleteket lehet végrehajtani, és ezek hogyan befolyásolják az állapotot. Ez megkönnyíti a többi fejlesztő számára (vagy akár a jövőbeni Ön számára) a kód megértését és karbantartását.

Kihívások és azok leküzdése

Természetesen a szűkítők használata horgokkal nem minden napfény és szivárvány. Előfordulhat néhány kihívás.

Az egyik kihívás a cselekvések és állapotváltozások áramlásának megértése. Ha több művelettel és összetett állapottal rendelkezik, nehéz lehet nyomon követni, mi történik. Ennek kiküszöbölésére használhat olyan eszközöket, mint a React DevTools, amelyek lehetővé teszik az alkalmazás állapotának és műveleteinek ellenőrzését.

Egy másik kihívás a teljesítmény. Ha a reduktor funkciója sok számítást végez, vagy nagy mennyiségű adatot kell feldolgozni, lelassíthatja az alkalmazást. Ennek megoldására optimalizálhatja a reduktor funkcióját olyan technikák használatával, mint a memoizáció.

Következtetés

Nos, ez egy összefoglaló, hogyan kell használni egy horgokkal ellátott reduktort a Reactban. Ez egy hatékony kombináció, amely magasabb szintre emelheti React alkalmazásait. Függetlenül attól, hogy kis feladatlista-alkalmazást vagy nagyméretű vállalati alkalmazást épít, a reduktorok segítségével hatékonyabban kezelheti állapotát.

Ha kiváló minőségű szűkítőket keres vízvezeték-projektjeihez (vagy más ipari alkalmazásokhoz), ne habozzon kapcsolatba lépni velünk. Azért vagyok itt, hogy segítsek megtalálni az igényeinek megfelelő reduktort. Csak írjon nekem, és megkezdhetjük igényeinek megbeszélését.

Hivatkozások

  • Reagáljon a hivatalos dokumentációra
  • JavaScript tervezési minták könyvek
  • Online oktatóanyagok a React állapot kezeléséről
A szálláslekérdezés elküldése