为什么你要在React.js中使用Immutable Data

发布时间:2019-06-24 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了为什么你要在React.js中使用Immutable Data脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

简单的来讲,immutable.js通过structural sharing来解决的性能问题。
看看immutable.js是如何做的当我们发生一个set操作的时候,immutable.js会只clone它的父级别以上的部分,其他保持不变,这样大家可以共享同样的部分,可以大大提高性能。
为什么你要在React.js中使用Immutable Data熟悉React.js的都应该知道,React.js是一个UI = f(states)的框架,为了解决更新的问题,React.js使用了virtual dom,virtual dom通过diff修改dom,来实现高效的dom更新。听起来很完美吧,但是有一个问题。当state更新时,如果数据没## 标题文字 ##变,你也会去做virtual dom的diff,这就产生了浪费。
这种情况其实很常见,可以参考flummox这篇文章当然你可能会说,你可以使用PureRenderMixin来解决呀,PureRenderMixin是个好东西,我们可以用它来解决一部分的上述问题,但是如果你留心的话,你可以在文档中看到下面这段提示:
PureRenderMixin只是简单的浅比较,不使用于多层比较。那怎么办??
自己去做复杂比较的话,性能又会非常差。
方案就是使用immutable.js可以解决这个问题。因为每一次state更新只要有数据改变,那么PureRenderMixin可以立刻判断出数据改变,可以大大提升性能。
总结就是:使用PureRenderMixin + immutable.js
通过使用Immutable Data,可以让我们更容易的去处理缓存、回退、数据变化检测等问题,简化我们的开发。


mutable data structure做diff需要遍历
immutable只要对比一下reference是不是一个就行了

react做virtual dom的diff会快

首先,我们有必要来划分一下边界,哪些数据需要使用不可变数据,哪些数据要使用原生js数据结构,哪些地方需要做互相转换?

脚本宝典总结

以上是脚本宝典为你收集整理的为什么你要在React.js中使用Immutable Data全部内容,希望文章能够帮你解决为什么你要在React.js中使用Immutable Data所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。