2
我不明白如何讓繼承使通過Compositon 例如,我們有一個簡單的Clock
組件使繼承:反應的組分通過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>
);
}
}
,然後我們要再拍時鐘組件HappyClock
,它具有相同的邏輯,但不同的渲染方法:
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>
);
}
}
我怎麼能做到這一點通過成分,如果我們想有許多不同的時鐘,同樣的邏輯
構圖不是一種繼承機制。所以你不能「通過構圖繼承」。理想情況下,你會分開邏輯和表示,以便「邏輯」根本不是任何組件的一部分。 – zerkms