React: Concept: State

 23rd March 2020 at 4:58pm

React 的 state 机制,主要参考 State and Lifecycle

其中最值得注意的一点是:setState 函数是异步的,并不是同步的。官方文档有详述这个内容,但是这个 API 的名字和使用方式,很容易让人觉得是同步的。这会导致很多难以发现的 bug。比如文档 这一节 中的例子,告诉我们更新 state 时不要依赖于原有的 state / props 值:

// Wrong
this.setState({
  counter: this.state.counter + this.props.increment,
});

// Correct
this.setState((state, props) => ({
  counter: state.counter + props.increment
}));

MobX 针对这个问题提出了解决办法。

了解完 MobX 的原理后,再读下 3 Reasons why I stopped using React.setState - Michel Weststrate 中的相关部分。

参考文档

  1. State and Lifecycle - React
  2. React.Component API Reference - React
  3. 3 Reasons why I stopped using React.setState - Michel Weststrate