在 store(model) 和 class 中存储状态在时间效率方面有什么区别?

What's the difference between storing states in store(model) and class in terms of time efficiency?

我目前开始使用 MobX,它使我的 类 完全无状态。它对我来说看起来不错,但我想知道在商店(有人称之为模型商店)中存储您的状态(observable 状态和方法)是否有任何缺点?

在性能方面没有显着差异。其背后的思考过程通常是"Do I need this state in just this component, or does it have to be shared?"

如果是本地状态,可以直接放在组件上class:

@observer
class MyComponent extends React.Component {
  @observable value = '';

  render() {
    return (
      <input value={this.value} onChange={e => this.value = e.target.value} />
    );
  }
}

如果是共享状态,你可以把它放在外部存储中,然后传递给组件:

const MyComponent = observer((props) => (
  <input
    value={props.myStore.value}
    onChange={e => props.myStore.value = e.target.value}
  />
));