它有这么几个 api:fromJS、toJS、set、setIn、get、getIn。...你还可以用 toJS 再把 immutable 数据结构转成 JS 对象: 再来回顾下 immutable 的 api:fromJS、toJS、set、get、setIn、getIn 这些都很容易理解...对象的用法,也不用啥 getIn、setIn 啥的。...用 state 的时候依然是普通 JS 对象的用法。是不是简单的一批,心智负担基本为 0?...immutable 有自己的数据结构,Map、Set 等,有 fromJS、toJS 的 api 用来转换 immutable 数据结构和普通 JS 对象,操作数据需要用 set、setIn、get、getIn
) export const defaultHandler = (state = initialState, action) => { return state } export const setIn...(objPath, value) } export const handlers = { [ReducerTypes.SET_IN]: setIn, [ReducerTypes.DEFAULT...payload: { objPath: pagePath, value: paginationOption } }) } 3 reducer中的table.js...文件 通过setIn方法 (immutable语法) 改变state中的数据 进而更新dom export const setIn = (state = initialState, action) =...> { const {payload} = action const {objPath, value} = payload return state.setIn(objPath, value
另一个是由Facebook开发人员撰写的[immutable.js](https://github.com/facebook/immutable-js)。...对于这个演示,我将使用immutable.js,因为它的API对JavaScript开发人员更熟悉。 对于这次演示,我们将用不可变数据介绍“扫雷”游戏是如何工作的。...所以我们的工具包提供了一些方法: function revealTile(game, tile) { return game.setIn(['tiles', tile, 'isRevealed'],...setIn是空安全的,如果的任何部分不存在,它将填充空对象。在扫雷板的情况下,这是不可取的,因为缺少的瓦片意味着我们试图在板外显示瓦片。...game.setIn(['tiles', tile, 'isRevealed'], true) : game; } 如果tile不存在,我们只需返回现有的游戏。
下一个项目中打算在redux中使用Immutable.js。在此对一些API进行简单记录。日后用到其它也会慢慢补充 Immutable的中文翻译就是不可变,所以。...寒假的时候再看看这个库的源码吧, 文档地址 Immutable中的一些数据结构 Map 无序键值对(有点像js的Object) 设置 set (对应delete、deleteAll)/ setIn...5, "y": 10 }, // "b": Map { "x": 20, "y": 10 }, // "c": Map { "z": 3 } // } filter map toJS 深转化js...对象 toJSON 浅转化js toArray 浅转化 toObject 浅转化 读取 get/getIn List 类似于js的数组 OrderedMap 有序键值对(按照设置的顺序?)...Set 无序集合类型 OrderedSet 有序集合,按照添加值顺序排序 Stack 栈 unshift shift Record 类似于js的Object,but enforces a specific
struct node; rear->next=NULL; head=rear; scanf("%d",&n); while(n--) { List setin...=new struct node; scanf("%d%d",&(setin->coef),&(setin->expon)); setin->next=NULL;...rear->next=setin; rear=setin;//rear为尾部指针 } return head; } void print(List L)//输出带头结点的链表 {
throw new RuntimeException(ex); } is = new ByteArrayInputStream(input.getBytes()); System.setIn...System.out */ public void close() { os = null; is = null; System.setOut(orig); System.setIn...output("收集到的输出内容:" + os.toString("UTF-8")); InputStream is = System.in; System.setIn...} catch (NoSuchElementException e) { e.printStackTrace(); } System.setIn
private In in; public Out(String outName) { this.outName = outName; } public void setIn...main(String[] args) { Out out = new Out("out"); In in = new In("in name"); out.setIn...CloneNotSupportedException { DCOut copy = (DCOut) super.clone(); In copyIn = (In) this.in.clone(); copy.setIn
Immutable.js immutable.js 是一个 JavaScript 库。...而 immediate.js 就是做这个工作的。 immutable 这个单词表示“不可改变的”。...immutable 还提供了 setIn 和 getIn 方法,对象嵌套式的复杂数据结构,可以使用这两个方法很方便地获取到深层的 key 值。...}); // 更改属性 a 的值 var obj_1 = obj.set("a",456); // 更改属性 b 里面的 child 属性里的 age 属性值 var obj_2 = obj.setIn...属性 var childName = obj.getIn(["b","child","name"]); // 将数组 c 中的下标是 1 的项(数组第二项)值改为 50 var obj_3 = obj.setIn
/log.txt"); System.setIn(is); 或: Writer out = new FileWriter(xxx); //xxx 为文件名 out.write(xxx);//xxx
System.currentTimeMillis来计算当前日期,星期几等,可以方便的与Date进行转换 标准输入、输出方法 System类的in、out、err分别代表系统的标准输入(通常是键盘)、标准输出(通常是显示器)和错误输出流,并提供了setIn...控制台输出:程序运行完毕,请查看日志 那么setIn()是不是可以改变输入流呢?...InputStream in = System.in; //缓存标准输入 InputStream ps = new FileInputStream("log.txt"); System.setIn
spikeSubmit(e) { e.stopPropagation(); const newK = this.props.itemData.setIn...spikeSubmit(e) { e.stopPropagation(); const newK = this.props.itemData.setIn...根据清单中的命名和注释规则,对其进一步优化: ///utils/product/constants.js ......e.stopPropagation(); const firstZeroCountItemData = this.props.itemData.setIn
JS中存在中着大量的可变性 在JS中,字符串和数值被设计为非可变的,但是很多情况下并非如此。...下面介绍的immutable-js也是用到了共享数据结构的方法。 immutable-js简介 immutable-js是facebook开发的JS非可变性数据结构集合。...immutable-js的github地址为:https://github.com/facebook/immutable-js node环境下immutable-js的使用简单示例: var Immutable...//判断揭开的单元格id是否存在 game.setIn(['tiles', tile, 'isRevealed'], true) : game; } 作者在后续还分析了ES7中的Object.observe...总结 本文简述了Immutability in JavaScript以及immutable-js文档中关于非可变性之于JS的意义与应用场景。
JS加密、JS混淆,是一回事吗?是的!在国内,JS加密,其实就是指JS混淆。...1、当人们提起JS加密时,通常是指对JS代码进行混淆加密处理,而不是指JS加密算法(如xor加密算法、md5加密算法、base64加密算法,等等...)2、而“JS混淆”这个词,来源于国外的称呼,在国外称为...所以,有的人用国外的翻译名称,称为js混淆。3、无论是js加密,还是js混淆,他们的功能,都是对js代码进行保护,使可读的明文js代码变的不可读,防护自己写的js代码被他人随意阅读、分析、复制盗用。...,js是直接执行源码、对外发布也是源码),所以,为了提升js代码安全性,就有了js加密、js混淆操作。...加密后的js代码,不一定能保证100%安全了,但肯定比不加密强,很简单的道理。6、怎样进行js加密、js混淆?
void setIn(InputStream in):重新分配“标准”输入流。 void setOut(PrintStream out):重新分配“标准”输出流。
如何在 JavaScript 中引用 JS 脚本 在 JavaScript 中引用外部 JS 脚本有两种主要方法: 使用 标签 这是最简单的方法,通过在 HTML 页面中插入... 标签来引用 JS 脚本: 其中 src 属性指定要引用的脚本文件的路径。...动态创建并插入 元素: const script = document.createElement("script"); script.src = "script.js
value.toList() : value.toOrderedMap()) }) 2. toJS() 作用 : 将一个Immutable数据转换为JS类型的数据 用法 : value.toJS()简介...: value是要转变的数据 3. is() 作用 : 对两个对象进行比较 用法 : is(map1,map2) 简介 : 和js中对象的比较不同,在js中比较两个对象比较的是地址,但是在Immutable...而 Immutable.js 压缩后下载有 16K。...后 import Immutable from 'immutable'; foo = Immutable.fromJS({a: {b: 1}}); bar = foo.setIn(['a', 'b']..., 2); // 使用 setIn 赋值 console.log(foo.getIn(['a', 'b'])); // 使用 getIn 取值,打印 1 console.log(foo === bar
标准输入流, 默认可以从键盘输入读取字节数据 System.out是PrintStream, 标准输出流, 默认可以向Console中输出字符和字节数据 2.修改标准输入输出流 修改输入流: System.setIn...(InputStream) 修改输出流: System.setOut(PrintStream) System.setIn(new FileInputStream("a.txt"));...//将数据写到b.txt上 } in.close(); ps.close(); 22.11_IO流(修改标准输入输出流拷贝图片) System.setIn
还是在ajax的过程中调用这个对象的属性 发现属性的值并不会随着cookie的变化而变话 还是保持老值
领取专属 10元无门槛券
手把手带您无忧上云