通过一个案例来了解生命周期
需求: 自定义组件
让指定的文本做显示/隐藏的渐变动画
切换持续时间为2S
点击按钮从界面中移除组件界面
尝试代码:
<script type="text/babel">
class LifeCycle extends React.Component {
state = {
opacity: 1,
timer:""
};
tryHard = (event) => {
//卸载组件
ReactDOM.unmountComponentAtNode(document.getElementById("app"))
};
//render调用时机:初始化, setState状态更新之后
render() {
//不知道生命周期之前 因为不能再类里面写函数体 只能再render方法里面写setInterval
//每次setState 都会调用render方法 生成多个定时器
setInterval(() => {
let {opacity} = this.state;
opacity -= 0.1;
if (opacity <= 0) opacity = 1;
//key 与 value 变量同名 可以简写
this.setState({opacity});
}, 200);
return (
<div>
<h1 style={{opacity: this.state.opacity,}}>強くなりたい</h1>
<button onClick={this.tryHard}>頑張れ</button>
</div>
)
}
}
ReactDOM.render(<LifeCycle/>, document.getElementById("app"),);
</script>