This approach can also allow for the creation of well named helper functions that can be shared between handlers that require the same type of update.
转载 2020-01-16 17:07:00
63阅读
2评论
immer.js 实战讲解文档
原创 2022-10-30 18:15:03
74阅读
更新复杂对象的噩梦在 React 类组件中,state是一个对象,当组件相对复杂时,state对象的结构可能也相当复杂。比如:class User extends Component {   constructor(props) {     super(props);     // 初始化state      this.state = {       name: "freewheelLee",  
原创 2020-12-22 16:51:10
332阅读
【React】immer组件版本10的使用
原创 2023-08-07 00:33:27
180阅读
Immer is a tiny library that makes it possible to work with immutable data in JavaScript in a much more straight-forward way by operating on a tempora
转载 2018-01-15 01:16:00
76阅读
2评论
immer是一个不可变对象状态管理的node 包,一般主要场景应用到react 等项目中,当然node 项目也是可以使用的 优点 遵循不可变数据流 强类型 开箱即用的结构共享 开箱即用的对象冻结 json patche 支持 gzip 之后比较小 内部参考处理 如下图 参考资料 https://im
原创 2024-04-15 09:36:42
58阅读
写在前面Immer结合Copy-on-write机制与ES6Proxy特性,提供了一种异常简洁的不可变数据操作方式:constmyStructure={a:[1,2,3],b:0};constcopy=produce(myStructure,()=>{//nothingstodo});constmodified=produce(myStructure,myStructure=>{myS
原创 2021-01-13 18:49:45
254阅读
假设 React 组件有这样一个状态: 我们这样修改了它的状态: 你觉得组件会重新渲染么? 我们先在 class 组件里试一下: 渲染 state.a.b 的值,两秒以后修改 state。 你发现它重
原创 2022-09-21 11:40:38
155阅读
immer的使用——优化setState——优化useState——优化redux使用,提高性能
原创 2022-10-22 07:10:37
113阅读
在复杂应用中,例如低代码、富文本编辑器的场景下,数据结构的设计就显得非常重要,这种情况下的状态管理并非是redux、mobx等通用解决方
原创 5月前
70阅读
你还在用UseState,use-immer了解下? 1 人赞同了该文章use-immer库是一个非常实用的JavaScript库,它可以帮助开发者更加方便地管理和更新JavaScript对象和数组。在本篇技术博客中,我们将深入探讨use-immer库的高级用法。1. 什么是use-immer库?use-immer库是一个基于Immer.js的React Hook,它可以帮助开发者更加方
转载 2024-09-16 20:32:20
16阅读
通过使用useReducer和Immer,我们可以更好地管理复杂的状态逻辑,同时保持代码的可读性和可维护性。Immer特别适合处理深层嵌套的状态
一.简介Immer(Germanfor:always)isatinypackagethatallowsyoutoworkwithimmutablestateinamoreconvenientway.Immer提供了一种更方便的不可变状态操作方式二.核心优势其方便之处主要体现在:只有一个(核心)API:produce(currentState,producer:(draftState)=>vo
原创 2021-01-13 18:46:47
740阅读
useImmer 概述 useImmer 是基于 immer 库实现的一个 React Hook,它让你可以像修改可变数据一样来修改不可变数据。immer 是一个不可变的数据结构库,完全符合 Reac
原创 1月前
48阅读
Zustand状态管理与Immer的深度结合 摘要:本文介绍了Zustand状态库在处理深层嵌套状态时的解决方案。通过"葫芦娃"示
useImmer 是一个基于 immer 的 React Hook,它简化了不可变数据的操作。核心特性包括简化状态更新、类型安全和性能优化。
一、基本使用1、官网地址2、在项目中直接安装npm install @reduxjs/toolkit react-redux3、查看@reduxjs/toolkit的依赖包其中自动集成了thunk处理异步的包..."dependencies": { "immer": "^9.0.1", "redux": "^4.0.0", "redux-thunk": "^2.3.0", "reselect": "^4.0.0" },...4、在st
原创 2021-06-15 15:55:16
2553阅读
本文总结了JavaScript新特性的当前状态:装饰器(Decorators)处于Stage 3,已通过Babel/TypeScript支持,但需注意与旧版语义差异;管道操作符(Pipeline Operator)仍在Stage 2,存在Hack/F#两种语法分歧,需通过Babel配置使用;记录与元组(Record & Tuple)提案已撤回,建议使用Immer/Immutable等替代方案。
本文使用 Zhihu On VSCode 创作并发布在 2019 年 11月 27日,Slate 发布了新版。底层从 immutable.js 迁移到 immer,基于 TypeScript 重构。在之前的版本推荐阅读 编辑器初体验 长佑:编辑器初体验zhuanlan.zhihu.com 笔者没有开发过编辑器,但对 Slate 的整体设计理念非常感兴趣。这里不会
转载 2024-06-13 16:43:53
56阅读
什么是不可变数据不可变数据的概念来自函数式编程。在函数式编程中,对已初始化的“变量”是不可以更改的,每次更改都要创建一个新的“变量”。Javascript 在语言层没有实现不可变数据,需要借助第三方库来实现。(immutable.js 或者 immer.js)为什么使用不可变数据?使用不可变数据的目的是为了跟踪数据的改变。如果直接修改数据,那么就很难跟踪到数据的改变,跟踪数据的改变需要可变对象可以
转载 2024-08-09 17:54:00
31阅读