ich nicht verstehen, wie die Vererbung durch Compositon zum Beispiel machen zu machen haben wir eine einfache Clock
Komponente:Reagieren Komponenten Vererbung durch Compositon
class Clock extends React.Component {
constructor(props) {
super(props);
this.state = {date: new Date()};
}
componentDidMount() {
this.timerID = setInterval(
() => this.tick(),
1000
);
}
componentWillUnmount() {
clearInterval(this.timerID);
}
tick() {
this.setState({
date: new Date()
});
}
render() {
return (
<div>
<h1>Hello, world!</h1>
<h2>It is {this.state.date.toLocaleTimeString()}.</h2>
</div>
);
}
}
und dann wollen wir eine andere Clock Component HappyClock
machen und haben gleiche Logik, sondern verschiedene render-Methode:
class HappyClock extends Clock {
constructor(props) {
super(props);
}
render() {
return (
<div>
<h1>Hello, Happy world!</h1>
<h2>It is Happy {this.state.date.toLocaleTimeString()} Time.</h2>
</div>
);
}
}
, wie ich es durch Zusammensetzung tun können, wenn wir viele verschiedene Uhren und derselben Logik
haben wollen
Zusammensetzung ist kein Vererbungsmechanismus. Sie können also nicht durch Komposition erben. Idealerweise würden Sie Logik und Repräsentation trennen, so dass "die Logik" überhaupt nicht Bestandteil einer Komponente ist. – zerkms