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