[S8L2] React Router 2 Flashcards
Was ist Render Props?
- Ein erweitertes React Pattern um Daten zu Components zu geben
- Das Value des Props ist dabei eine Function
- Die Props Function wird eine Component zurückliefern, die wir rendern möchten
Was ist bei render Props zu beachten?
- Match, History, Location müssen explizit weitergereicht werden, ansonsten gehen sie verloren
- Die Render Props Components müssen mit JSX Syntax referenziert werden
Wie sieht ein Render Prop aus?
Route path=”/home” render={(props) => (MyComponent {…props} someProp={someData} otherProp={data} /> )} />
Was sind nested Routes?
-Route ist nur eine React Component, kann also alles rendern
-Erlauben es eine sehr spezifische Adresse zu navigieren, um speziellen Inhalt der Seite darzustellen
-
Was ist die Konsequenz, wenn man keine nestes Routes nutzt?
Was sind Nachteile von nested Routes?
- Der Code wird komplexer
- Oftmals muss das exact path Props genutzt werden damit die Seite richtig dargestellt wird
- Man muss früh planen wie die Website abläuft
Was sind History Objecte in React Router?
- History kommt eigentlich vom Browser selbst von Window.History
- Hält Informationen darüber wo man sich im Navigationsstack befindet
- Das JS Props History Object har viele nützliche Hilfsmethoden wie action, goBack, goForward, length, listen
Was macht function greet() {
props.history.push(‘/greet/Luke’)
}
- Die History Methode .push akzeptiert einen String als Location in den Routes
- Und ändert die aktuelle URL dann zu diesem String
Wann benutzt man normalerweise die History.push Function?
- Conditionally, wenn die API neue Daten geliefert hat
- Oder wenn die Datenbank ein Object gespeichert hat und man das erfolgreiche Speichern visualisieren möchte oder zur ErrorPage etc
Was ist der Unterschied zwischen Link und NavLink Component in React Router?
- NavLink hat ein active attribute prop, welches man herumreichen kann und es heißt activeClassName
- Damit kann man ein active und nicht active Effect erschaffen
Warum möchte man manchmal auch nicht exact für einen Path nutzen?
-Weil nested Routes dann nicht mehr Regex exact sind und daher alle nested Routes nichts mehr rendern