Requisiten sind einfach eine Abkürzung für Eigenschaften. Requisiten sind, wie Komponenten miteinander sprechen. Wenn Sie mit React überhaupt vertraut sind, sollten Sie wissen, dass Requisiten von der übergeordneten Komponente nach unten fließen.
Es gibt auch den Fall, dass Sie Standard-Requisiten haben können, so dass Requisiten festgelegt werden, auch wenn eine übergeordnete Komponente Requisiten nicht weitergibt.
Aus diesem Grund wird React als unidirektionaler Datenfluss bezeichnet. Dies erfordert ein wenig Zeit und ich werde wahrscheinlich später darüber bloggen, aber denken Sie vorerst daran: Daten fließen von Eltern zu Kindern. Requisiten sind unveränderlich (schickes Wort dafür ändert sich nicht)
Wir sind also glücklich. Komponenten erhalten Daten vom übergeordneten Element. Alles sortiert, richtig?
Nicht ganz. Was passiert, wenn eine Komponente Daten von einer anderen Person als der übergeordneten Komponente empfängt? Was ist, wenn der Benutzer Daten direkt in die Komponente eingibt?
Nun, deshalb haben wir Staat.
ZUSTAND
Requisiten sollten sich nicht ändern, also steigt der Status. Normalerweise haben Komponenten keinen Status und werden daher als zustandslos bezeichnet. Eine Komponente, die state verwendet, wird als stateful bezeichnet. Fühlen Sie sich frei, diesen kleinen Leckerbissen auf Partys fallen zu lassen und zu beobachten, wie sich Leute von Ihnen entfernen.
Der Status wird also verwendet, damit eine Komponente Informationen zwischen den von ihr ausgeführten Renderings verfolgen kann. Wenn Sie setState festlegen, wird das Statusobjekt aktualisiert und die Komponente erneut gerendert. Das ist super cool, denn das bedeutet, dass React sich um die harte Arbeit kümmert und unglaublich schnell ist.
Als kleines Beispiel für den Status finden Sie hier einen Ausschnitt aus einer Suchleiste (sehen Sie sich diesen Kurs an, wenn Sie mehr über React erfahren möchten.)
Class SearchBar extends Component {
constructor(props) {
super(props);
this.state = { term: '' };
}
render() {
return (
<div className="search-bar">
<input
value={this.state.term}
onChange={event => this.onInputChange(event.target.value)} />
</div>
);
}
onInputChange(term) {
this.setState({term});
this.props.onSearchTermChange(term);
}
}
ZUSAMMENFASSUNG
Requisiten und Staat machen ähnliche Dinge, werden aber auf unterschiedliche Weise verwendet. Die meisten Ihrer Komponenten sind wahrscheinlich zustandslos.
Requisiten werden verwendet, um Daten vom Elternteil zum Kind oder von der Komponente selbst zu übergeben. Sie sind unveränderlich und werden daher nicht verändert.
Der Status wird für veränderbare Daten oder Daten verwendet, die sich ändern. Dies ist besonders nützlich für Benutzereingaben. Denken Sie zum Beispiel an Suchleisten. Der Benutzer gibt Daten ein und aktualisiert, was er sieht.