美文网首页
React:State&生命周期

React:State&生命周期

作者: iambabewin | 来源:发表于2018-01-24 11:11 被阅读0次

State&生命周期

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>
    );
  }
}

ReactDOM.render(
  <Clock />,
  document.getElementById('root')
);

1.当 <Clock /> 被传递给 ReactDOM.render() 时,React 调用 Clock 组件的构造函数。 Clock 需要显示当前时间,所以使用包含当前时间的对象来初始化 this.state 。

2.React 然后调用 Clock 组件的 render() 方法。React 更新 DOM 以匹配 Clock 的渲染输出。

3.当 Clock 的输出插入到 DOM 中时,React 调用 componentDidMount() 生命周期钩子。 在其中,Clock 组件要求浏览器设置一个定时器,每秒钟调用一次 tick()。

4.浏览器每秒钟调用 tick() 方法。 在其中,Clock 组件通过使用包含当前时间的对象调用 setState() 来调度UI更新。 通过调用 setState() ,React 知道状态已经改变,并再次调用 render() 方法来确定屏幕上应当显示什么。 这一次,render() 方法中的 this.state.date 将不同,所以渲染输出将包含更新的时间,并相应地更新DOM。

5.一旦Clock组件被从DOM中移除,React会调用componentWillUnmount()这个钩子函数,定时器也就会被清除。

相关文章

  • React的生命周期

    中文文档:State&生命周期-React英文文档:StateandLifecycle–React 简单来说,一个...

  • React:State&生命周期

    State&生命周期 1.当 被传递给 ReactDOM.render() 时,React 调...

  • react随记4 State&生命周期

    State&生命周期 React中组件生命周期如下图: 从上图中也可以看出,组件在构造函数中有state,也就是状...

  • React进阶-State&生命周期

    state state是指组件的当前状态。组件根据状态state呈现不同的UI展示。 一旦状态(数据)更改,组件就...

  • React概念图

    React概念图 React组件生命周期概念图 参考文档:React入门教程 组件生命周期React:组件生命周期...

  • React基础篇之组件的生命周期

    引出生命周期 react生命周期(旧) react生命周期(新) getSnapshotBeforeUpdate的...

  • React生命周期

    React v16.0前的生命周期 React v16.4+ 的生命周期图 React v16.9后这些生命周期钩...

  • React v16 生命周期

    React 16 生命周期 React 16.3 新增的生命周期方法 逐渐废弃的生命周期方法: 一般将生命周期分成...

  • 学习并实现react (4)

    实现生命周期 生命周期介绍 React 生命周期图 React 子组件在父组件下的生命周期流程 实现 compon...

  • React面试题 整理脑图

    react基础 React生命周期 react-router react进阶 react Hooks redux 其他

网友评论

      本文标题:React:State&生命周期

      本文链接:https://www.haomeiwen.com/subject/rikaoxtx.html