mobx toJS工具函数
复杂的数据结构会使mobx提供的数据序列化,此时需要用toJS来做一下转化
做if判断时无法便利并获取序列化的值,则会一直返回null,使用toJS则可以获取到真实的值,并正确判断true和false
只有输出查看的时候需要转,一般情况下可直接进行操作,即使序列化也具有数据的结构和功能
现象:
获取到的mobx是序列化后的,需要转成js可解析的数据:
toJS
toJS(value, options?)
递归地将一个(observable)对象转换为 javascript 结构。 支持 observable 数组、对象、映射和原始类型。 计算值和其他不可枚举的属性不会成为结果的一部分。 默认情况下可以正确支持检测到的循环,但也可以禁用它来获得性能上的提升。
toJS
接收两个选项
-
exportMapsAsObjects
是否将 observable 映射序列化为对象 (true
) 或 JavaScript Map 对象 (false
)。默认为true
。 -
detectCycles
如果检测到循环,则重新使用已经序列化的对象。 这可以防止无限递归。 默认为true
.
对于更复杂的(反)序列化场景,可以使用 serializr。
var obj = mobx.observable({ x: 1 }); var clone = mobx.toJS(obj); console.log(mobx.isObservableObject(obj)); // true console.log(mobx.isObservableObject(clone)); // false
注意: 在 MobX 2.2 版本以前此方法的名称是 toJSON 。
用法:
import { toJS } from 'mobx'
toJS(ThreeHeader)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?