老师你好 这句话 是体现了 immeutable吗
来源:10-6 【redux-toolkit】createSlice、reducer、与immer

qq_提笔写下你的烦恼_0
2022-09-04
写回答
1回答
-
阿莱克斯刘
2022-09-22
从语言结构上来说图片中红线的部分是一个典型的immeutable,但是我们的课程使用了immer,所以看起来是对原数据进行了修改。接下来,我们从immeutable的本质和immer框架来解释一下。
immeutable就是“不能更改”的意思,但是使用了immer以后(本课第八分钟左右)分明是"更改"了数据,所以,immer是一个典型的“更改”数据的语法结构。但请注意,我刚刚提到“更改”的时候使用了双引号。因为我们使用了immer这个框架,在使用了immer以后,reducer对数据进行“更改”的时候,immer就会“劫持”我们的这个代码片段,通过immeutable的方法在内存中重新创建一个更改后的对象,然后向reducer中返回这个新对象(也就是不改变远原对象,只创建新对象)。
为什么要使用immer?因为在使用了immer以后,可以减少大量reducer中的重复性代码,让我们的reducer看起来更加清楚,让搞不懂immeutable是什么的程序员也可以顺利完成代码。
所以,对于初学者来说,不用太纠结什么是immeutable,不理解的话可以配合代码训练多看几次视频,阅读一些课外文档,有点react+redux实际经验以后,自然而然就能搞明白了。
00
相似问题