A class component and a function component, both of which can click on the div to modify the value of num.
export default function App() {
  const [num, setNum] = useState(0);
  const click = () => {
    setTimeout(() => {
      console.log(num, "3000");
    }, 3000);
    setNum(num + 1);
  };
  return <div onClick={click}>click {num}</div>;
}
export default class App extends React.Component {
  state = {
    num: 0
  };
  click = () => {
    setTimeout(() => {
      console.log(this.state.num);
    }, 3000);
    this.setState({ num: this.state.num + 1 });
  };
  render() {
    return <div onClick={this.click}>click {this.state.num}</div>;
  }
}
Why is the output of num different in the above two components after clicking
 
    