[S9L2] Immutability, Object Assign Flashcards
Wie ist der Workflow eine Redux App zu bauen?
- Reducer
- Store
- Components/UI
- Buttons
- Actions
Was ist eine pure Function?
- Eine Function, welche predictable ist und deterministische bei gleichem state Object und Action immer das selbe Ergebnis herausgibt.
- Es ist von nichts außerhalb des eigenen Scopes abhängig.
Was macht connect()?
connect binds dispatch and actions to the reducer and to the component
Was macht createStore?
createStore connects the reducer to the store
Was ist Immutability?
-Unveränderbarkeit
Ist Redux auf dem Prinzip von Immutability aufgebaut?
- Ja, der Store ist immer immutable.
- Daher kann es keine komischen Seiteneffekte zum Store/State der Applikation geben
- Man tauscht mit den Reducern jeweils den vorherigen State komplett gegen einen neuen Zustand aus.
Warum ist Immutability eine gute Idee für Redux?
- Predictable State Management Machine, verhindert Seiteneffekte von Änderungen an der Applikation
- Mental Modell ist einfacher im Kopf zu behalten und wie sich der State ändert
- Veränderungen/Mutations werden getracked, da die Components immer direkt durch neue Props mit updaten und Views neu rendern
- Besonders bei großen Applikation ist dies von Vorteil
Ist der Redux Store auch nur ein Object?
Ja
Welche Arten von Datentypen gibt es in JavaScript?
- Primitive Types(number, string, boolean, object)
- Reference Types (Ein Object das auf ein anderes Object mit Referenz zeigt)
-const myObj = { name: "Sascha" }; //primitive const newObj = myObj //reference
Wie kann man in JavaScript Immutability umsetzen?
-Mit assign
const newObject = Object.assign([}, myObject, [age: myObject.age +1 });
//Zuerst das Object was aus der Function als frisches neues Object returned wird //Dann das Object was kopiert werden soll //Dann die Changes
Wie kann man ein immutable Object in JavaScript updaten?
-Indem man es durch ein neues ersetzt
Was sind die Vorteile wenn man Object.assign benutzt um Immutability zu erzeugen?
- Das alte Object bleibt unverändert
- Es können keine unerwarteten Seiteneffekte auftreten
Wie kann man Arrays in Objects mit Immutability in JavaScript behandeln?
const newObject = Object.assign([}, myObject, [age: myObject.scores.concat(50});
Welche Array Methoden erzeugen keine Seiteneffekte, da sie Immutable arbeiten?
- Filter
- Map
- Concat
Was macht dispatch?
-Called den Reducer direkt
-