Um React zu benutzen (aber auch generell) ist es hilfreich die gängigsten Features aus ES6 zu kennen.
ES6 steht für ESMAScript 6, was quasi als JavaScript v2.0 zu verstehen ist (JavaScript v1 war noch sehr rudimentär).
Viele ES6 Features kennst du schon: const und let, Promises, die For-of-Schleife, ...
Folgende Features sind aber gerade in der Verwendung von React gut zu wissen.
Man spart sich hier also, wie auch bei den Array Functions, wieder eine Menge Tipparbeit, und spart sich sogar die Benennung einzelner Props.
Du kennst diese Schreibweise sogar schon, und zwar von Imports. Genau so funktioniert das aber auch bei Objekten.
Und wenn man genau drauf achtet, merkt man auch, dass in Komponenten das Parameter auch ein Objekt ist. Also ja, man kann sogar in Funktionsheadern die Parameter destructen.
Optionale Parameter einer Funktion können mit einem Defaultwert versehen werden. Bedeutet also, wenn das Parameter nicht mitgegeben wird (oder undefined als Wert übergeben wird), das Parameter stattdessen den Defaulwert erhält. Wenn das Parameter allerdings mitgegeben wird, wird natürlich auch der entsprechende Wert benutzt.
In diesem Beispiel kann man also einer Funktion renderUserProfile u.A. ein Parameter profilePictureSrc mitgeben.
[x] Definiere in deiner Button Komponente einen Defaultwert für dein Label (z.B. "Click me!" o.Ä.), und teste, ob der Wert entsprechend angezeigt wird, wenn du kein label übergibst.
Manchmal hat man Situationen, in denen man, bevor man ein Objekt erstellt, einzelne Props des Objekts bereits in Variablen gespeichert hat, sodass die Belegung des Objekts selbst dann so aussehen könnte:
const firstName = "John";
const age = 42;
const person = {
firstName: firstName,
lastName: "Doe",
age: age,
};
Wenn du Variable nun genau so heißt wie die Prop des Objekts (so wie hier also firstName und age), kann man stattdessen eine Kurzschreibweise benutzen:
const firstName = "John";
const age = 42;
const person = {
firstName,
lastName: "Doe",
age,
};
Hinweis: Dies funktioniert nur bei Objekt-Props, und nicht z.B. bei der Definition von Variablen.
Aufgabe
[x] Nix :) Einfach nächstes Mal benutzen, wenn du siehst, dass es anwendbar ist.
Bei Array kann es manchmal sein, dass man mehrere Array zusammentun möchte. Man könnte dafür zwar über das 2. Array drüberschleifen und jedes Element einzeln in das 1. Array pushen, aber das wäre etwas umständlich. Stattdessen gibt es den Spread Operator, mit dem man ein Array quasi "aufspreizen" kann. Das würde dann so aussehen:
Etwas interessanter wird das Ganze, wenn man merkt, dass es auch Funktionen gibt, die eine dynamische Anzahl an Parametern erwarten, wie z.B. console.log().
const names = ["Peter", "Hans", "Werner", "Helmut"];
console.log(...names); // "Peter Hans Werner Helmut"
Um React zu benutzen (aber auch generell) ist es hilfreich die gängigsten Features aus ES6 zu kennen. ES6 steht für ESMAScript 6, was quasi als JavaScript v2.0 zu verstehen ist (JavaScript v1 war noch sehr rudimentär).
Viele ES6 Features kennst du schon: const und let, Promises, die For-of-Schleife, ... Folgende Features sind aber gerade in der Verwendung von React gut zu wissen.
Object Destructuring
Wenn man an eine oder mehrere Props eines Objekt kommen möchte, kann man es entweder so schreiben:
oder man benutzt Object Desctructuring:
Man spart sich hier also, wie auch bei den Array Functions, wieder eine Menge Tipparbeit, und spart sich sogar die Benennung einzelner Props.
Du kennst diese Schreibweise sogar schon, und zwar von Imports. Genau so funktioniert das aber auch bei Objekten.
Und wenn man genau drauf achtet, merkt man auch, dass in Komponenten das Parameter auch ein Objekt ist. Also ja, man kann sogar in Funktionsheadern die Parameter destructen.
Aufgabe
Defaultwerte für Parameter
Optionale Parameter einer Funktion können mit einem Defaultwert versehen werden. Bedeutet also, wenn das Parameter nicht mitgegeben wird (oder
undefined
als Wert übergeben wird), das Parameter stattdessen den Defaulwert erhält. Wenn das Parameter allerdings mitgegeben wird, wird natürlich auch der entsprechende Wert benutzt.In diesem Beispiel kann man also einer Funktion
renderUserProfile
u.A. ein ParameterprofilePictureSrc
mitgeben.Genau so funktioniert das Übrigens auch für Props eines Objekts:
Aufgabe
Button
Komponente einen Defaultwert für dein Label (z.B. "Click me!" o.Ä.), und teste, ob der Wert entsprechend angezeigt wird, wenn du kein label übergibst.Object Property Value Shorthan
Manchmal hat man Situationen, in denen man, bevor man ein Objekt erstellt, einzelne Props des Objekts bereits in Variablen gespeichert hat, sodass die Belegung des Objekts selbst dann so aussehen könnte:
Wenn du Variable nun genau so heißt wie die Prop des Objekts (so wie hier also firstName und age), kann man stattdessen eine Kurzschreibweise benutzen:
Hinweis: Dies funktioniert nur bei Objekt-Props, und nicht z.B. bei der Definition von Variablen.
Aufgabe
Spread Operator
Bei Array kann es manchmal sein, dass man mehrere Array zusammentun möchte. Man könnte dafür zwar über das 2. Array drüberschleifen und jedes Element einzeln in das 1. Array pushen, aber das wäre etwas umständlich. Stattdessen gibt es den Spread Operator, mit dem man ein Array quasi "aufspreizen" kann. Das würde dann so aussehen:
Etwas interessanter wird das Ganze, wenn man merkt, dass es auch Funktionen gibt, die eine dynamische Anzahl an Parametern erwarten, wie z.B.
console.log()
.