DataSet基本原理是基于mobx实现的,mobx中的状态对象, 它具有可观察的属性, 我们将它称为 observable,当我们发起action改变数据的时候,就会观察数据是否发生变化,observable 的属性值在其变化的时候 mobx 会自动追踪并作出响应。当 value 是一个对象类型值的时候,它会默认克隆该对象并且把其中每个属性变为可观察的值,这里默认是深拷贝,也就是说其对象的后代属性都会变成可观察的,比如 @observable classProperty = { obj: { name: 'q' } }
,当 classProperty.obj.name
改变的时候,在 MobX 中也是可以观察到并响应的;
DataSet中fields,是类似于后端 SQL 数据表中的字段属性。这里负责的是将后端传回的数据收集进入 DataSet
中,将其变成 DataSet
可以监听到的数据,当数据发生更改的时候就会触发视图的变化,基于mobx中的observation可观察属性,这样处理过的 DataSet
,就会将所有的后端数据转换成 DataSet
能够识别的字段,同时利用观察者模式做到了视图与数据的同步更新。