Redux -Aktionen sind einfache JavaScript -Objekte, die die Absicht darstellen, den Zustand der Anwendung zu ändern. Sie dienen als einzige Möglichkeit, Änderungen in einem Redux -Store auszulösen. Eine Aktion enthält typischerweise ein type
, das die Art von Aktion angibt, die zusammen mit anderen relevanten Daten (häufig als payload
bezeichnet).
Um eine Aktion zu versenden, verwenden Sie die vom Redux Store bereitgestellte dispatch
. Der Prozess kann in die folgenden Schritte unterteilt werden:
type
und einer beliebigen erforderlichen payload
.dispatch
auf und geben Sie das Aktionsobjekt ein. Dies sendet die Aktion an den Redux -Store, der sie dann durch den Reduzierer weiterleitet, um den Status zu aktualisieren.Hier ist ein grundlegendes Beispiel:
<code class="javascript">// Action Creator function incrementCounter() { return { type: 'INCREMENT_COUNTER', payload: 1 }; } // Dispatching the action store.dispatch(incrementCounter());</code>
In diesem Beispiel ist incrementCounter
ein Aktionsersteller, der ein Aktionsobjekt zurückgibt. Die Aktion wird dann mit store.dispatch
in den Laden geschickt.
Die Struktur einer Redux -Aktion ist unkompliziert, aber wichtig zu verstehen. Ein typisches Redux -Aktionsobjekt hat die folgende Struktur:
Hier ist ein Beispiel für eine typische Aktionsstruktur:
<code class="javascript">{ type: 'ADD_TODO', payload: { id: 1, text: 'Learn Redux' }, error: false, meta: { timestamp: new Date().getTime() } }</code>
Redux Thunk ist eine Middleware, mit der Sie Action -Ersteller schreiben können, die Funktionen anstelle von Actionobjekten zurückgeben. Diese Funktionen können Nebenwirkungen haben, wie z.
So können Sie Redux Thunk verwenden, um asynchrone Aktionen zu entsenden:
Installieren Sie Redux Thunk : Zuerst müssen Sie Redux Thunk installieren.
<code class="bash">npm install redux-thunk</code>
Richten Sie Redux Thunk ein : Redux Thunk in die Middleware Ihres Geschäfts einbeziehen.
<code class="javascript">import { createStore, applyMiddleware } from 'redux'; import thunk from 'redux-thunk'; import rootReducer from './reducers'; const store = createStore(rootReducer, applyMiddleware(thunk));</code>
Erstellen Sie einen asynchronen Action -Ersteller : Schreiben Sie einen Action -Ersteller, der eine Funktion zurückgibt. Diese Funktion kann Aktionen versenden und setTimeout
, fetch
oder andere asynchrone Operationen verwenden.
<code class="javascript">function fetchTodos() { return async (dispatch) => { dispatch({ type: 'FETCH_TODOS_REQUEST' }); try { const response = await fetch('https://example.com/api/todos'); const data = await response.json(); dispatch({ type: 'FETCH_TODOS_SUCCESS', payload: data }); } catch (error) { dispatch({ type: 'FETCH_TODOS_FAILURE', error: error.message }); } }; }</code>
Entsenden Sie die asynchronisierende Aktion : Sie können jetzt die asynchronisierende Aktion wie eine reguläre Aktion entsenden.
<code class="javascript">store.dispatch(fetchTodos());</code>
In diesem Beispiel ist fetchTodos
ein asynchrischer Aktionsförderer, der verschiedene Aktionen in verschiedenen Stadien einer asynchronen Operation sendet.
Die effektive Verwaltung von Aktionstypen in Redux ist entscheidend für die Aufrechterhaltung einer skalierbaren und wartbaren Anwendung. Hier sind einige Best Practices:
Verwenden Sie Konstanten für Aktionstypen : Definieren Sie Aktionstypen als Konstanten in einer separaten Datei. Dies verhindert Tippfehler und erleichtert die Aufrechterhaltung der Aktionstypen in der Anwendung.
<code class="javascript">// actionTypes.js export const INCREMENT_COUNTER = 'INCREMENT_COUNTER'; export const DECREMENT_COUNTER = 'DECREMENT_COUNTER';</code>
Organisieren Sie Aktionstypen nach Domain : Gruppenaktionen nach der Domäne, zu der sie gehören. Dies hilft bei der Verwaltung einer großen Anzahl von Aktionstypen.
<code class="javascript">// counterActionTypes.js export const INCREMENT_COUNTER = 'INCREMENT_COUNTER'; export const DECREMENT_COUNTER = 'DECREMENT_COUNTER'; // userActionTypes.js export const LOGIN_USER = 'LOGIN_USER'; export const LOGOUT_USER = 'LOGOUT_USER';</code>
Verwenden Sie Action -Ersteller : Verwenden Sie Aktion Ersteller, um Aktionen zu generieren. Dies verringert die Wahrscheinlichkeit von Fehlern und macht den Code wiederverwendbarer.
<code class="javascript">// actions.js import { INCREMENT_COUNTER } from './actionTypes'; export function incrementCounter() { return { type: INCREMENT_COUNTER, payload: 1 }; }</code>
type
-Feld haben und möglicherweise eine payload
, error
oder meta
-Feld haben.Durch die Befolgung dieser Best Practices können Sie Aktionstypen in Redux effektiv verwalten, was zu einem saubereren, wartbaren Code führt.
Das obige ist der detaillierte Inhalt vonWas sind Redux -Aktionen? Wie schickst du sie?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!