首页 > 解决方案 > 就时间效率而言,在 store(model) 和 class 中存储状态有什么区别?

问题描述

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

标签: javascriptreactjsreact-nativemobx

解决方案


在性能方面没有显着差异。它背后的思考过程通常是“我需要这个状态只是这个组件,还是必须共享?”

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

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

推荐阅读