官术网_书友最值得收藏!

Quick recap on reactions

MobX offers a couple of ways to execute side-effects, but you have to identify which one fits your needs. Here is a quick round-up that can help you in making the right choice.

We have three ways of running side-effects:

  1. autorun( effect-function: () => {} ): Useful for long-running side-effects. The effect function executes immediately and also anytime the dependent observables (used within it) change. It returns a disposer function that can be used to cancel anytime.
  2. reaction( tracker-function: () => data, effect-function: (data) => {} ): Also for long-running side-effects. It executes the effect function only when the data returned by the tracker function is different. In other words, reaction() waits for a change in the observables before any side-effects are run. It also gives back a disposer function to cancel the effect prematurely.
  1. when( predicate-function: () => boolean, effect-function: () => {} ): Useful for one-off effects. The predicate function is evaluated anytime its dependent observables change. It executes the effect function only when the predicate function returns true. when() automatically disposes itself after running the effect function. There is a special form of when() that only takes in the predicate function and returns a promise. Use it with async-await for a simpler when().
主站蜘蛛池模板: 白河县| 阿拉善盟| 施甸县| 兴义市| 南城县| 武邑县| 囊谦县| 同江市| 左云县| 盱眙县| 察隅县| 拜泉县| 盈江县| 通州区| 杨浦区| 六盘水市| 板桥市| 呼伦贝尔市| 盐池县| 顺昌县| 赣州市| 许昌县| 武功县| 湘西| 隆子县| 惠水县| 曲靖市| 乡城县| 东兴市| 海南省| 莱州市| 泰兴市| 缙云县| 长治市| 冷水江市| 西畴县| 郴州市| 绍兴市| 高台县| 新绛县| 电白县|