位置: 编程技术 - 正文

搞定immutable.js详细说明

编辑:rootadmin

推荐整理分享搞定immutable.js详细说明,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

什么是Immutable Data

Immutable Data是指一旦被创造后,就不可以被改变的数据。

通过使用Immutable Data,可以让我们更容易的去处理缓存、回退、数据变化检测等问题,简化我们的开发。

js中的Immutable Data在javascript中我们可以通过deep clone来模拟Immutable Data,就是每次对数据进行操作,新对数据进行deep clone出一个新数据。

deep clone

当然你或许意识到了,这样非常的慢。如下图,确实很慢

主角immutable.js登场

immutable.js是由facebook开源的一个项目,主要是为了解决javascript Immutable Data的问题,通过参考hash maps tries 和 vector tries提供了一种更有效的方式。

简单的来讲,immutable.js通过structural sharing来解决的性能问题。我们先看一段视频,看看immutable.js是如何做的

搞定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可以立刻判断出数据改变,可以大大提升性能。这部分还可以参考官方文档Immutability Helpers

总结就是:使用PureRenderMixin + immutable.js

参考

React.js Conf - Immutable Data and React

Immutability Helpers

PureRenderMixin

immutable-js

JS基于clipBoard.js插件实现剪切、复制、粘贴 摘要:最近做了一个项目,其中有这样一需求:实现一个点击按钮复制链接的功能,通过网上找相关资料,找到了几个插件,ZeroClipboard是通过flash实现

深入浅析Bootstrap列表组组件 Bootstrap,来自Twitter,是目前最受欢迎的前端框架。Bootstrap是基于HTML、CSS、JAVASCRIPT的,它简洁灵活,使得Web开发更加快捷。列表组是灵活又强大的组件,

原生JS封装Ajax插件(同域、jsonp跨域) 抛出一个问题,其实所谓的熟悉原生JS,怎样的程度才是熟悉呢?最近都在做原生JS熟悉的练习。。。用原生Js封装了一个Ajax插件,引入一般的项目,传

标签: 搞定immutable.js详细说明

本文链接地址:https://www.jiuchutong.com/biancheng/369934.html 转载请保留说明!

上一篇:Immutable 在 JavaScript 中的应用

下一篇:JS基于clipBoard.js插件实现剪切、复制、粘贴(js基于什么语言)

  • 税收实体法和程序法分类
  • 出差补贴计入
  • 公司注销还能要回钱吗
  • 超市发票报销用途写什么
  • 营业外收入记账
  • t3用友软件怎么设置三级科目
  • 收到生育津贴会计分录怎么做
  • 盈余公积转增股本的分录怎么写
  • 虚开增值税立案标准
  • 税务注销后还能稽查吗
  • 接受捐赠材料支付的运费 扣除
  • 分税制的内容有哪些?
  • 行业协会的作用定位
  • 材料收到发票未到怎么记账
  • 公司活动宣传稿怎么写
  • 计提个人生产经营所得个税需要贴附件吗
  • 计生用品增值税减免税申报明细表怎么填
  • 小规模纳税人开专票税率是1%还是3%
  • 以前年度损益结转到什么科目
  • 公司注销财务账需要保存几年
  • 在win11
  • 计提房租费
  • windows10什么时候上市
  • php现在
  • 消费税会计分录完整案例
  • 关于企业财务会计的说法正确的是
  • 简单的css特效
  • 大学生网页设计大赛
  • java代理有几种方式
  • 注意!PHP 7中不要做的10件事
  • 前期认证相符
  • 应付账款盘点表
  • ps怎么把皮肤变红润
  • 模具固定资产如何核算
  • 开票显示税收分录怎么办
  • 如何修改php
  • python中的装饰器的使用实战
  • 劳保统筹费计入什么科目
  • 税率开错了会影响贷款吗
  • 进项税计税依据
  • 企业增值税专用发票抵扣流程
  • 研发支出的账务怎么处理
  • 交强险必须要买嘛
  • 确认应付职工薪酬怎么算
  • 红冲更正的正确分录
  • 押金和租金
  • 银行承兑汇票由谁出票
  • 购销合同上没有金额,怎么写比较好
  • 增值税免征印花税怎么算
  • 创业带动就业补贴是给企业的还是员工的
  • 建筑企业收到材料发票没有备注工程地址可以用吗
  • 取现发放劳务费怎么做账
  • 投资方收到股票怎么处理
  • 开办幼儿园的流程图
  • 预计销售收入增长率怎么算
  • 劳动纠纷给员工的建议
  • 收入成本率多少合理
  • 跨年度固定资产转为在建工程怎么计算
  • 委托收款商业汇票
  • sqlserver怎么使用索引
  • MySQL删除重复数据只保留一条
  • mysql删除数据库用户
  • mysql分页性能
  • windows7 ie
  • edif是什么文件
  • windows8正在准备windows
  • 东芝笔记本配件
  • linux中快捷键
  • cocos2dx4.0入门
  • 零基础玩转python
  • unity gui
  • win10安装node.js
  • wordpress 0day
  • 深圳税务网上申报客户端更正申报流程
  • 医保断交一年怎么续交
  • 法院执行的房子可以卖吗
  • 应交税费应交增值税已交税金是什么意思
  • 地税全国联网了吗
  • 一般纳税人租赁费税率
  • 汽车修理厂24小时修理
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设