MobX v3.0.0 发布,一个 TFRP 编程范式的实现

摘要:MobX 是一个 TFRP 编程范式的实现。

 

要想知道MobX是什么,首先需要了解一下FRP是什么,FRP 的本质是,在声明一个值的时候,同时指定他的动态行为。这个值可能是事件,也可能是数据。 FRP 有两个重要的分支:

  • 基于 Event Stream 的 FRP
    基于 Event Stream 的 FRP 擅长于管理 Stream,可进行 Joining, splitting, merging, mapping, sampling 等等。在需要处理多个 Event Stream 的时候非常有用,但对于简单场景来说,就过于复杂了。比如 RxJS 和 BaconJS 就属于此类。
     
  • Transparent FRP (TFRP)
    Transparent FRP 是在背后去实现 Reactive Programming 。和 Event Stream 的 FRP 一样,TFRP 会在需要的时候更新 View,不同的是 TFRP 不需要你定义如何 (How) 以及何时 (When) 更新。这一类型的框架有 Meter(Tracker),knockoutJS 和 EmberJS 。

接下来介绍一下Mobx 和 其他实现有什么不同:

  • 同步执行 (这样监听的值始终是最新的,并且调试会方便,因为没有额外的 Promise/Async 库引入的堆栈信息)
  • 没有引入额外的数据结构,基于普通的 Object, Class, Array 实现 (更少学习成本,更新数据时更自然)
  • 独立方案 (不捆绑框架,相比 Meter, EmberJS 和 VueJS 而言)

更新日志

  • observable.object(props, name?) creates a new observable object, by cloning the give props and making them observable
  • observable.array(initialValues, name?). Take a guess..
  • observable.map(initialValues, name?)
  • observable.box(initialValue, name?). Creates a boxed value, which can be read from / written to using .get() and.set(newValue)
  • observable(value), as-is, based on the type of value, uses any of the above four functions to create a new observable.
  • observable.shallowObject(props, name?)
  • observable.shallowArray(initialValues, name?)
  • observable.shallowMap(initialValues, name?)
  • observable.shallowBox(initialValue, name?)

 

下载

本站原创,转载时保留以下信息:
本文转自:深度开源(open-open.com)
原文地址:http://www.open-open.com/news/view/3726e4be