在复杂应用中,例如低代码、富文本编辑器的场景下,数据结构的设计就显得非常重要,这种情况下的状态管理并非是redux、mobx等通用解决方案,而是需要针对具体场景进行定制化设计,那么在这里我们来尝试基于Immer以及OT-JSON实现原子化、可协同、高扩展的应用级状态管理方案。
描述
将Immer与OT-JSON结合的想法来自于slate,我们首先来看一下slate的基本数据结构,下面的例子是高亮块的描述。这个数据结构看起来非常像零代码/低代码的结构,因为其含有很多children,而且存在对节点的装饰描述,即bold、border、background等属性值。
[code][ { "highlight-block": { border: "var(--arcoblue-6)", background: "var(--arcoblue-3)", }, children: [ { children: [{ text: "
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |