[S9L3] Middleware, Thunk, Async Flashcards
Was ist Middleware?
- Ein gängiges Tool in Software um Prozesse abzufangen, eine Function aufzurufen und dann den Prozess fortzuführen
- Eine Art mit dem Datenfluss durch eine Prozess zu arbeiten bevor er beendet ist
Was ist Redux Middleware?
- Fängt jede Action ab, welche dispatched wird bevor es den Reducer erreicht
- Kann Actions stoppen
- Kann Actions unberührt weiterleiten
- Kann Actions zum Reducer dispatchen oder Actions verändern
- Kann mehrere Actions dispatchen
Was ist eine Redux Middleware Library?
yarn add redux-logger
import { applyMiddleware, createStore } from ‘redux’;
import logger from ‘redux-logger’;
const store = createStore(
reducer,
applyMiddleware(otherMiddleware, logger)
);
Was ist bei der Reihenfolge von loggenden Middlewares zu beachten?
-SIe müssen dem applyMiddleware als letztes Argument hinzugefügt werden
Was ist Redux Thunk?
- Eine Möglichkeit um Async Operation in Redux auszuführen
- Ist ein Middleware Package, um Redux Async zu machen
Ist Redux by default synchron?
-Ja, bei API Calls muss die gesamte Applikation warten bis die Antwort zurückkommt.
Was ist ein thunk?
- Eine function die von einer anderen function returned wird, also eine Art innerer function
- Thunks werden in Action Creators genutzt um Async Operationen auszuführen
Wie benutzt man einen Thunk?
import React from “react”;
import ReactDOM from “react-dom”;
import { createStore, applyMiddleware } form “redux”;
import thunk from “redux-thunk”;
import reducer from “./reducers”;
const store = createStore(reducer, applyMiddleware(thunk));
Wie benutzt man einen Async Action creator mit redux thunk?
const asyncOperation = data => dispatch => { axios.post("/api/data-call", data) .then(res => { dispatch({ type: CALL_SUCCESS, payload: res.data }); }) .catch(err => { dispatch({ type: CALL_FAILURE, payload: err.response }); }); };
Welche Regeln gelten für Finite State Machines?
-Können nur in einem Zustand zu einem gegebenen Zeitpunkt sein
Was erlauben thunks?
-Inner functions (thunks) aus dem Action Creator zu returnen
Wie schreibt man einen Load für einen Fetch?
import Loade from “react-load-spinner”