美文网首页
immer分享摘要

immer分享摘要

作者: 叫我王必过 | 来源:发表于2021-09-17 00:14 被阅读0次

    文档:https://juejin.cn/post/6844904111402385422

    1、immutable解决了什么问题?

    • 数据分为基本类型和引用类型,多出引用同一处数据源,并加以修改,就会出现不可预测的问题。

    • 那就再每次修改数据源的时候,深拷贝一份数据源,在拷贝的数据上做操作? 浪费内存,消耗性能。

    • 所以在 2014 年,facebook 的 immutable-js 横空出世,即保证了数据间的 immutable ,在运行时判断数据间的引用情况,又兼顾了性能。

    • Immutable 实现的原理是 Persistent Data Structure(持久化数据结构),也就是使用旧数据创建新数据时,要保证旧数据同时可用且不变。同时为了避免 deepCopy 把所有节点都复制一遍带来的性能损耗,Immutable 使用了 Structural Sharing(结构共享),即如果对象树中一个节点发生变化,只修改这个节点和受它影响的父节点,其它节点则进行共享。

    • immer与 immutable-js 最大的不同,immer 是使用原生数据结构的 API 而不是像 immutable-js 那样转化为内置对象之后使用内置的 API。所有具有副作用的逻辑都可以放进 produce 的第二个参数的函数内部进行处理。在这个函数内部对原来的数据进行任何操作,都不会对原对象产生任何影响

    -immersed原理:Immer 源码中,使用了一个 ES6 的新特性 Proxy 对象。

    相关文章

      网友评论

          本文标题:immer分享摘要

          本文链接:https://www.haomeiwen.com/subject/rlodgltx.html