Přejít na hlavní obsah

Práce dispatch v reduxu: základní principy a mechanismy

Redux - je to Knihovna pro správu stavu aplikace v JavaScriptu. Jedním ze základních pojmů v Reduxu je dispatch. Dispatch je funkce, která se používá k odesílání událostí (akcí) ke zpracování v Reduxu.

Dispatch plní roli prostředníka mezi komponenty a reduxery, které mění stav aplikace. Když komponenta vyvolá dispatch a předá mu událost, Redux tuto událost předá všem reduxerům. Ředkvičky přijímají události a na jejich základě mění stav.

Dispatch přijímá objekt-událost, která obsahuje dvě vlastnosti: type a payload. Typ události udává reduxerům, jakou změnu je třeba provést, a payload obsahuje data potřebná k provedení této změny.

Použití dispatch v Reduxu umožňuje zlepšit strukturu kódu a učinit jej předvídatelnějším. Umožňuje vám vytvořit jasný datový tok a usnadňuje sledování změn.

Co je dispatch v reduxu?

Akce je jednoduchý objekt, který popisuje událost, která se děje, a obsahuje minimálně dvě pole: type (řetězec, který popisuje typ akce) a payload (údaje potřebné k aktualizaci stavu).

Když je povolána funkce dispatch, přenáší akci na všechny registrované redesigny v aplikaci. Každý reduser přijme aktuální stav a akci a vrátí nový stav.

Pro příklad zvažte jednoduchý reducer, který zpracovává akci "INCREMENT" zvýšením počítadla o 1:

const initialState = ;function counterReducer(state = initialState, action) ;default:return state;>>

Poté můžeme použít funkci dispatch poslat akci do reduceru:

dispatch(< type: 'INCREMENT' >);

Reducer obdrží tuto akci a aktualizuje stav zvýšením počítadla o 1.

Dispatch je klíčový nástroj v Reduxu, který poskytuje jednosměrný datový tok a umožňuje aktualizaci stavu aplikace v reakci na události.

Jak to funguje?

Když zavoláme funkci dispatch, předáme ji akci jako objekt s polem "type". Akce může také obsahovat další užitečná data, jako jsou data pro aktualizaci stavu nebo data pro provádění asynchronních operací.

Když je dispatch vyvolán, Redux přenese akci a aktuální stav úložiště do funkce-reducer (reducer). Reduxer je čistá funkce, která přijímá aktuální stav a akci a vrací nový stav aplikace.

Dispatch také spouští proces aktualizace stavu v Reduxu. Když reduxer zpracuje akci, vytvoří a vrátí nový stavový objekt. Redux nahradí současný stav úložiště novým stavem a odešle upozornění všem předplatitelům (subscribers), že se stav změnil.

Všichni předplatitelé úložiště mohou sledovat změny stavu tím, že se přihlásí k odběru jeho aktualizací. Když je stav aktualizován, Redux vyvolá uložené sledovací funkce a předá jim nový stav. Všechny komponenty, které závisí na stavu Reduxu, tak mohou být aktualizovány s ohledem na tyto změny.

Použití dispatch nám umožňuje odesílat akce a aktualizovat stav v naší aplikaci. Je klíčovým konceptem v Reduxu a umožňuje nám spravovat stav aplikace na jednom místě, takže je Kód předvídatelnější a snadno sledovatelný.

Akce a typy akcí

Akce obsahují dvě povinná pole:

PolePopis
type Řetězec, který určuje typ akce. Obvykle se udává jako konstanta, aby se zabránilo překlepům při psaní kódu.
payload Další informace předávané spolu s akcí. Může obsahovat veškeré údaje potřebné ke zpracování akce.
const incrementCounter = (amount) => ;>;

V tomto příkladu akce incrementCounter zvyšuje hodnotu čítače o dané množství. Typ akce je uveden jako INCREMENT_COUNTER a hodnota, na kterou má být měřič zvýšen, je přenášena do pole payload .

Typy akcí mají syntaktickou dohodu jako řádek napsaný velkými písmeny s podtrženími místo mezer. To umožňuje snazší identifikaci a zpracování různých typů akcí uvnitř reduxerů.

Vytvoření akce

K vytvoření akce v Reduxu používáme funkci (action creator), která vrací objekt akce. Tato funkce může přijímat možnosti, které budou zahrnuty do objektu akce.

KrokPříklad
1Určete typ akce, která je řádkem a jedinečně identifikuje danou akci. Například "ADD_TODO " nebo"INCREMENT_COUNTER".
2Vytvořte funkci generátor akce (action creator), která přijme požadované parametry a vrátí objekt akce. V objektu akce musí být nutně přítomno pole "type" s typem akce a mohou být přítomna další užitečná data. Například:
function addTodo(text) return type: 'ADD_TODO',
text
>;
>
3K vytvoření akcí v kódu aplikace použijte vytvořenou funkci-generátor akce. Například:
const action = addTodo('Buy milk');

Vytváření akcí v Reduxu nám tedy umožňuje přenášet informace a specifikovat typ události, ke které došlo v aplikaci. Tyto akce budou odeslány do úložiště pomocí funkce dispatch a budou zpracovány podle konkrétních reducerů (reducers).

Zpracování akce

Při použití knihovny Redux jsou akce (actions) jednoduché objekty, které popisují, co se v aplikaci stalo. Když je akce vytvořena, přenese se do funkce dispatch.

Dispatch je metoda Redux Store, která bere akci jako argument. Je hlavní funkcí pro přenos akce mezi komponentami a úložištěm Redux. Když je dispatch vyvolán, přenese akci do ředkviček.

Reduxery jsou čisté funkce, které přijímají předchozí stav úložiště a akci a vracejí nový stav. Reduxery určují, jak bude každá akce zpracována a jak se změní stav aplikace.

Dispatch tak provádí následující pracovní cyklus:

  1. Vytvoří akci a přenese ji do funkce dispatch.
  2. Dispatch přenáší akci do redewserů.
  3. Ředkvičky zpracují akci a vrátí nový stav.
  4. Nový stav je uložen v úložišti Redux.
  5. Komponenty podepsané na úložišti obdrží aktualizovaný stav a v případě potřeby se znovu použijí.

Dispatch je tedy centrálním mechanismem v Reduxu pro správu stavu aplikace a poskytuje jednosměrný datový tok v aplikaci.