就时间效率而言,将状态存储在store(模型)和class中有什么区别?

时间:2018-06-20 18:16:51

标签: javascript reactjs react-native mobx

我目前开始使用MobX,这完全使我的课程成为无状态。对我来说,这看起来不错,但是我想知道将状态(observable状态和方法)存储在商店(有人称其为模型商店)中是否有不利之处?

1 个答案:

答案 0 :(得分:2)

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

如果它是本地状态,则可以将其放在组件类上:

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