ImmutableJS】的更多相关文章

原生js转换为immutableData Immutable.fromJS([1,2]) // immutable的 list Immutable.fromJS({a: 1}) // immutable的 map 从immutableData 回到 JavaScript 对象 immutableData.toJS() 判断两个immutable数据是否一致 Immutable.is(immutableA, immutableB) 判断是不是map或List Immutable.Map.isMap…
一.前言 关于react的性能优化,有很多方面可以去做,而其中避免重复渲染又是比较重要的一点,那么为什么react会重复渲染,我们又该如何避免重复渲染呢,关于这方面官方其实早有说明:避免重复渲染,这里我就不赘述了.这次我主要是想对目前应用比较多的两种解决方案进行一次性能对比,分别是immutablejs和mobx,作为参考我把没有任何优化的redux也加入进来,对这三者在页面首次加载速度.用户点击执行一个操作的响应速度进行一系列的测试,最终根据测试结果得出结论. 二.采集数据 1.测试对象 测试…
四.我的结论 通过第三部分的数据数据分析,我觉得我们可以得到以下结论: 无论是在开发环境还是测试环下页面的首次加载速度结果都是:redux>immutablejs>mobx,但是他们之间的差距并不是很大. 10000条-100000条数据的页面加载时间的增量明显也高于10000-1000条数据的页面加载时间增量. 无论是在开发环境还是生产环境下点击完成某个todo所需的页面渲染速度结果都是:mobx>immutablejs>redux,正好和页面的首次加载时间相反,但是它们之间的差…
三.分析数据 1.前提说明 我对测试出的10个数据摘除最大值与最小值,然后求平均值 根据平均值我绘制了一个曲线图一个柱状图 曲线图用于查看1000-100000的性能趋势 柱状图用于比较在相同条数下redux.immutablejs和mobx三者的性能差异 2.图表展示 (一)页面加载速度 开发环境页面首次加载时间柱状图 开发环境页面首次加载时间曲线图 生产环境页面首次加载时间柱状图 生产环境页面首次加载时间曲线图 (二)点击某个todo页面渲染速度 开发环境点击完成某个todo页面渲染时间柱状…
引用大神的一句话:(具体是谁自己问度娘) Shared mutable state is the root of all evil(共享的可变状态是万恶之源) -- Pete Hunt   JavaScript 中的对象一般是可变的(Mutable),因为使用了引用赋值,新的对象简单的引用了原始对象,改变新的对象将影响到原始对象. 如 foo={a: 1}; bar=foo; bar.a=2 你会发现此时 foo.a 也被改成了 2. 虽然这样做可以节约内存,但当应用复杂后,这就造成了非常大的隐…
Immutable.js(和原生方法不同): 用于深层次的数组和对象的比较   数据结构:Map Set Seq List Rang(和原生不同)   首先:先忘记es5 es6的数组对象方法   官方文档:https://facebook.github.io/immutable-js/docs/#/     (1)set Set返回值相当于拷贝   (2)equals 比较值是否相等 (3)push unshift concat 红框内是immutable中的方法,并不是原生的,不同是返回的是…
The key to being productive with Immutable JS is understanding how to update values that are nested. Using setIn you can place a new value directly into an existing or new path. If you need access to the previous value before setting the new one, you…
在过去的几年时间里,Angular1.x显然是非常成功的.但由于最初的架构设计和Web标准的快速发展,逐渐的显现出它的滞后和不适应.这些问题包括性能瓶颈.滞后于极速发展的Web标准.移动化多平台应用,学习难度等. 所以Angular团队最终决定以全新方式构建Angular2框架.Angular2框架现在已经进入RC6版本,很快它就将进入最终发布版.Angular2带来了很多不错的特性,它们包括跨平台.高性能.高效开发,拥抱web标准等等. 由于在Angular中引入了render层隔离设计,所以…
Awesome系列的JavaScript资源整理.awesome-javascript是sorrycc发起维护的 JS 资源列表,内容包括:包管理器.加载器.测试框架.运行器.QA.MVC框架和库.模板引擎.数据可视化.时间轴.编辑器等. 前端MVC框架与库 angular.js - 前端MVVM框架,支持双向绑定,实现MVC架构,增强Web应用 aurelia - A Javascript client framework for mobile, desktop and web. backbo…
React组件性能优化 前言 众所周知,浏览器的重绘和重排版(reflows & repaints)(DOM操作都会引起)才是导致网页性能问题的关键.而React虚拟DOM的目的就是为了减少浏览器的重绘和重排版. 说到React优化问题,就必须提下虚拟DOM.虚拟DOM是React核心,通过高新的比较算法,实现了对界面上真正变化的部分进行实际的DOM操作(只是说在大部分场景下这种方式更加效率,而不是一定就是最效率的).虽然虚拟DOM很牛逼(实际开发中我们根本无需关系其是如何运行的),但是也有缺点…