React State(状态)简单演示

添加一个类构造函数来初始化状态 this.state,类组件应始终使用 props 调用基础构造函数

import React,{ Component } from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import * as serviceWorker from './serviceWorker';

class Clock extends React.Component{
  constructor(props){
    super(props);
    this.state={
      time:new Date()
    }
  }

  render(){
    return(
      <div>{this.state.time.toLocaleTimeString()}</div>
    )
  }
}

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

serviceWorker.unregister();

 

 

将生命周期方法添加到类中
每当 Clock 组件第一次加载到 DOM 中的时候,我们都想生成定时器,这在 React 中被称为挂载。
同样,每当 Clock 生成的这个 DOM 被移除的时候,我们也会想要清除定时器,这在 React 中被称为卸载。

componentDidMount() 与 componentWillUnmount() 方法被称作生命周期钩子。
在组件输出到 DOM 后会执行 componentDidMount() 钩子,我们就可以在这个钩子上设置一个定时器。
this.timerID 为定时器的 ID,我们可以在 componentWillUnmount() 钩子中卸载定时器。

import React,1)"> Date()
    }
  }

  //当 Clock 的输出插入到 DOM 中时
  componentDidMount(){
    this.timer=setInterval(()=>{
      this.tick()
    },1000);
  }

  Clock 组件被从 DOM 中移除
  componentWillUnmount(){
    clearInterval(.timer)
  }

  tick(){
    .setState({
      time: Date()
    })
  }

  render(){
    )
  );

serviceWorker.unregister();

 

数据自顶向下流动/单向数据流

import React,1)">;

function DateFormat(props){
  (
    props.date.toLocaleTimeString()
  )
}

class Clock extends React.Component{
  constructor(props){
    super(props);
    (
      <DateFormat date={this.state.time}/>
)
  );

serviceWorker.unregister();

 

为了表明所有组件都是真正隔离的,我们可以创建一个 App 组件,它渲染三个Clock

 

 

 

相关文章

react 中的高阶组件主要是对于 hooks 之前的类组件来说的,如...
我们上一节了解了组件的更新机制,但是只是停留在表层上,例...
我们上一节了解了 react 的虚拟 dom 的格式,如何把虚拟 dom...
react 本身提供了克隆组件的方法,但是平时开发中可能很少使...
mobx 是一个简单可扩展的状态管理库,中文官网链接。小编在接...
我们在平常的开发中不可避免的会有很多列表渲染逻辑,在 pc ...