首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么说 90% 的情况下,immer 能完胜 immutable

('a').set('b', 2); 用 fromJS 把 JS 对象转成 immutable 内部的数据结构,然后 get a,再 set b 的值。...你还可以用 toJS 再把 immutable 数据结构转成 JS 对象: 再来回顾下 immutable 的 api:fromJS、toJS、set、get、setIn、getIn 这些都很容易理解...(注意这里的 Map、Set 不是 JS 里的那个,而是 immutable 实现的) 这些 immutable 数据结构一般不大需要手动创建,直接用 fromJSimmutable 去创建就行。...有的同学可能会问,为什么要 sate.a 用 fromJS 转成 immutable,而不是整个 state 呢?...此外,immutable 在 redux 里也很有用的: 用 immutable 的话是这样写: const initialState = fromJS({}) function reducer(state

42520
您找到你想要的搜索结果了吗?
是的
没有找到

【react】利用shouldComponentUpdate钩子函数优化react性能以及引入immutable库的必要性

于是这里就引入了一个强大的第三方库 ——immutable.js,先举个例子示范一下: (首先要通过npm install immutable 安装immutable的依赖包哦) const { fromJS...} = require('immutable') let obj1 = fromJS({name:'李达康'}),obj2; obj2 = obj1;//obj2取得与obj1相同的值,但两个引用指向不同的对象...immuutable提供的API fromJS(obj)把传入的obj封装成immutable对象,在赋值给新对象时传递的只有本身的值而不是指向内存的地址。...obj.set(属性名,属性值)给obj增加或修改属性,但obj本身并不变化,只返回修改后的对象 obj.get(属性名)从immutable对象中取得属性值 1优点:深拷贝/浅拷贝本身是很耗内存,而immutable...from 'react' const { fromJS } = require('immutable') class Son extends React.Component{ shouldComponentUpdate

1.3K120

并行设计模式--immutable模式

线程不安全的原因是共享了变量且对该共享变量的操作存在原子性、可见性等问题,因此一种解决思路就是构造不可变的对象,没有修改操作也就不存在并发竞争,自然也不需要额外的锁,同步等操作,这种设计叫做immutable...object模式,本文主要理解这种模式,并学习如何实现一个较好的immutable类。...immutable设计原则 一个比较严格的immutable模式,有如下几种设计原则(来自Java多线程编程实战指南) 类本身是final修饰,防止其子类改变其定义的行为 所有字段都是用final修饰,...immutable设计陷阱 不可变类经常会遇到以下陷阱,他是不可变的吗?...比如系统中有表示用户一次下单购买商品数量的类Quantity,那么考虑到用户一次性购买数量很少大于10,因此这个类设计成immutable并且应用享元模式就可以很好地提高性能。

87760
领券