mobx如何实现其魔力

问题描述 投票:2回答:2

我很好奇mobx如何在幕后工作。

如果我有一个既是观察者又包含observables的组件:

@observer
export default class Form extends Component {
  @observable submitted = false;

  @action.bound
  submit() {
  }
}

mobx如何在不使用setState的情况下重新渲染,还是使用setState?

reactjs mobx
2个回答
6
投票

见:https://medium.com/@mweststrate/becoming-fully-reactive-an-in-depth-explanation-of-mobservable-55995262a254@observer基本上是autorun(() => this.render())的简写(它实际上有点复杂,但这就是它的概念归结为)


0
投票

MobX使用Object.defineProperty()将其自己的功能包装到分配运算符。当你写像form.submitted = false这样的东西时,实际上会调用一个MobX方法。另见https://twitter.com/dan_abramov/status/741633922694586368https://x-team.com/blog/es5-object-defineproperty-method/

© www.soinside.com 2019 - 2024. All rights reserved.