一、Immutable.js 介绍

Immutable.js 官方文档 : https://immutable-js.github.io/immutable-js/

关于Immutable的定义,官方文档是这样说的:

Immutable data cannot be changed once created, leading to much simpler application development, no defensive copying, and enabling advanced memoization and change detection techniques with simple logic. Persistent data presents a mutative API which does not update the data in-place, but instead always yields new updated data.

不可变的数据一经创建就无法更改,从而使应用程序开发更加简单,没有防御性的复制,并且可以使用简单的逻辑实现高级的记忆和更改检测技术。持久数据提供了一个变异的API,它不会就地更新数据,而是总是生成新的更新数据。

Immutable.js provides many Persistent Immutable data structures including: List, Stack, Map, OrderedMap, Set, OrderedSet and Record.

Immutable.js 提供许多持久不变的数据结构,包括:List、Stack、Map、OrderedMap、Set、OrderedSet和Record。

These data structures are highly efficient on modern JavaScript VMs by using structural sharing via hash maps tries and vector tries as popularized by Clojure and Scala, minimizing the need to copy or cache data.

这些数据结构在现代JavaScript vm上是高效的,通过Clojure和Scala推广的hash-maps尝试和vector尝试使用结构共享,最大限度地减少了复制或缓存数据的需要

Immutable.js also provides a lazy Seq, allowing efficient chaining of collection methods like map and filter without creating intermediate representations. Create some Seq with Range and Repeat.

Immutable.js还提供了lazy Seq,允许高效地链接map和filter等收集方法,而无需创建中间表示。用范围和重复创建一些序列。

如图:

二、 Immutable.js 优点

栗子:

没有使用immutable.js



使用immutable.js



详情参考:Immutable 详解及 React 中实践

最新文章

  1. Javascript单例模式概念与实例
  2. .NET 程序启动调试器 .NET 测试代码耗费时间
  3. C#设计模式-1、适配器模式(Adapter Pattern)(转载)
  4. CSS Reset / Normalize 如何进行样式重置
  5. Xcode8 及iOS10适配问题汇总
  6. php DOMDocument 递归 格式化缩进HTML文档
  7. angularjs学习笔记—事件指令
  8. [译]ASP.NET Core 2.0 部分视图
  9. Micro Templating源码分析
  10. C# string.format用法详解
  11. linux如何复制文件夹和移动文件夹
  12. redis5 集群迁移方案
  13. js保留小数点后面几位的方法
  14. oracle如何快速导入导出文本格式数据
  15. [Objective-C] id类型和instancetype类型
  16. Linux0.11从开机到准备执行main函数的启动学习
  17. JQuery第一天——入门概述与选择器
  18. jsf和facelets的生命周期
  19. php 中输出字符串时怎么换行?
  20. 2018中国大学生程序设计竞赛 - 网络选拔赛 4 - Find Integer 【费马大定理+构造勾股数】

热门文章

  1. Python基础之模块:1、模块的导入和使用
  2. Optional对象
  3. fastjson远程代码执行漏洞
  4. beego-orm-sqlite
  5. cookies和session总结
  6. WSL下的Ubuntu 18.04LTS配置软件源和系统更新
  7. [ERROR] mariadbd: The table 'INNODB_BUFFER_PAGE' is full
  8. 165 pbi-utils 使用文档
  9. UEFI引导linux启动过程的顺序,及修改办法
  10. svn 日常使用的错误集锦