Javascript 维护与数据库同步的MobX对象
我正在将MobX与我的React应用程序一起使用,以管理我的全局状态。基本上,我是在镜像后端数据(关系数据库)的结构,并根据需要获取数据 目前我的结构如下:Javascript 维护与数据库同步的MobX对象,javascript,real-time,mobx,Javascript,Real Time,Mobx,我正在将MobX与我的React应用程序一起使用,以管理我的全局状态。基本上,我是在镜像后端数据(关系数据库)的结构,并根据需要获取数据 目前我的结构如下: 类模型{ @可观测id @可观测propA=0 建造师(doc){ this.id=doc.id this.propA=doc.propA } @行动 更新=(文档)=>{ this.propA=doc.propA } @计算 获取computedProp(){ 把这个还给我 } } 班级商店{ records=observable.map
类模型{
@可观测id
@可观测propA=0
建造师(doc){
this.id=doc.id
this.propA=doc.propA
}
@行动
更新=(文档)=>{
this.propA=doc.propA
}
@计算
获取computedProp(){
把这个还给我
}
}
班级商店{
records=observable.map()
@行动
fetchOne=async(id)=>{
const doc=等待获取(url+id)
常数模型=新模型(doc)
此.records.set(id,型号)
}
getOne=copmutedFn((id)=>{
如果(!this.records.has(id)){
此.fetchOne(id)
}
返回此.records.get(id)
})
}
computedFn
函数来自mobx utils,基本上是一个接受参数的计算函数
我将所有记录保存在storerecords
属性中,以维护应用程序不同部分之间的引用
我现在要做的是用我的数据库保持这些记录的最新状态,我计划用固定时间间隔的轮询方法
但是,我不想重新读取我存储的所有记录,有些记录可能不再被观察到,我只想获取应用程序上当前需要的记录
例如,我是否有办法查看记录
道具并检查哪些ID被观察到,哪些没有
是否有其他结构可以允许在不侵入MobX内部的情况下进行更精细的控制?您可以尝试使用,基本上这是一种创建您自己的数据结构的方法
它有两个回调可以使用:
onBecomeObserved
和onBecomeUnobserved
。当某些东西开始或停止观察您的数据结构时,它们会通知您。我不知道mobx atoms!我会记住的!它们似乎有效,但产生了大量样板文件。最后,我使用mobx utils中的now
可观察值,使getOne
计算每隔一段时间重新计算一次,并对其添加了一个更新调用。