[S6L3] React State, Class, Handler Flashcards
Was sind React Class Components?
- Eine Erweiterung der Base React Class aus der react Library
- Bietet mehr Funktionialitäten (React API, Lifecycle)
- Render Function ist sehr wichtig
- Class Component können States halten
Wie definiert man eine Class Component?
class App extends React.Component { //render instead of JSX Code render () { return ( <div> <h1>Hello World h1> </h1></div> ); } }
Was ist ein State?
- Componen Level Storage Object, das Daten halten kann auf die Components zugreifen können
- States sollten vor der Constructor Function definiert sein
- Man kann states readen, updaten und deleten
- Wenn states updaten wird render() erneut gecallt
- States können als Props durch Components gereicht werden
- Wenn ein State sich ändert, ändert sich auch das Props
- States machen Components erst “Reactive”
Wie sieht eine Class Component mit einem State aus?
class App extends React.Component { constructor () { super (); this .state ={ name: "Sascha" }; }
render () { return ( <div> <h1>{this.state.name} h1> <h2>Welcome h2> </h2></h1></div> ); } }
Welche Eselsbrücke gibt es bei Class Components zu in React zu merken?
- CCR
- Declare your CLASS
- Declare your CONSTRUCTOR
- Dont Forget to call RENDER
Was kann in React als Alternative zu class App extends React.Component genutzt werden?
-import React, { Components } from ‘react’;
Was sind States?
- Das Herz einer jeden React Anwendung
- Die Daten wir man hat wenn man diese braucht
- Können im Constructor gespeichert sein
- Ist ein Object auf das mit dem this Keyword zugegriffen werden kann
- Solange es die gemountete Component gibt, gibt es auch den State
- States sind mutable (read, update, delete)
- Können mit setState Methode verändert werden
- Wenn der State sich ändert wird render Function gecalled
Wie kann man dynamisch states durch UserInput updaten?
class App extends React. Component { constructor () { super (); this. state = { message: "", name: "Sascha", age: 25, location: "Hamburg" }; } handleChange Function = event => { this.setState({ message: event.target.value }); };
render () {
return (
div className=”Ap
Message propsMessage={this. state.message}
Name propsName={this. state.name}
Age propsAge={this. state.age}
Location propsLocation={this. state.location}
input onChange={this. handleChangeFunction}
/div
);
}
}
Was ist ein DOM Event?
- Immer wenn ein User mit einem DOM Element interagiert
- Klick, MouseEnter, Inout, DoubeClick, Scroll etc
- Events feuern im Browser Window und sind zu bestimmten beinhalteten DOM Element gebunden
Wie sieht ein plain Vanilla Javascript Event aus?
cont btn = document. querySelector(‘buttin’);
function bgChange() { const rndCol = 'rgb(' + random(255) + ',' + random(255) + ',' + random(255) + ')'; document. body.style.backgroundColor = rndcol;
btn.onclick = bgChange;
Was ist der Unterschied von Events in plain vanilla JavaScript und React?
- Das Event wird in ein synthetisches Event Object gewrapped
- Objects werden gepooled, können also von vielen anderen Typen von DOM Elementen und deren Events genutzt werden
- Bessere Performance
- Events sind sehr custom, können selber definiert werden und sind nicht durch Browser oder React bestimmt
Wie sieht ein Event in React aus?
//Will log null because even was resused in syntheticEvent pool function handleClick (event) { setTimeout(function() { console.log(event. target.name); }, 1000); }
//Even Property die interessant ist muss in eigenem binding gespeichert werden function handleClick (event) { let name = event .target.name; setTimeout(function () { console.log(name); }, 1000); }
Wie werden Events in React in Components handelt?
class App extends React.Component { constructor() { super (); this. state = { message: "" }; }
handleSingleClickEvent = () => alert(“Single Click Event Triggered”);
handleDoubleClickEvent = () => alert(“Double Click Event Triggered”);
handleMouseEnterEvent = () => alert(“Mouse Enter Event Triggered”);
handleMouseLeaveEvent = () => alert(“Mouse Leave Event Triggered”);
handleInputChange = event => {
console .log(event. target.value);
this. setState({ message: event. target.value });
};
render() {
return (
div className=”App”>
<h1>{this. state.message}</h1>
button onClick={this. handleSingleClickEvent}>
Single Click Handler
button
button onDoubleClick={this. handleDoubleClickEvent}>
Double Click Handler
button>
button>Double Click Handler button
div onMouseEnter={this. handleMouseEnterEvent}>Mouse Enter div>
div onMouseLeave={this. handleMouseLeaveEvent}>Mouse Leave div>
input
onChange={this. handleInputChange}
type=”text”
placeholder=”Change me”
/>
div>
);
}
}
Was passiert wenn man eine Class Component von React.Component erben lässt und wie tut man es?
import React, { Component } from 'react'; oder class Student extends React.Component
-Props wird als Klassenatttribut der Class Componente hinzugefügt
-Die Props sind dann mit dem this Keyword erreichbar
(this .pops
Braucht eine Class Component einen Constructor wenn man keinen State nutzen möchte?
Nein!