美文网首页
React中的不可变性

React中的不可变性

作者: 依然还是或者其他 | 来源:发表于2020-09-08 23:25 被阅读0次

在React中,有两种改变数据的方式:

  • 直接修改数据的值
  • 使用新的数据来替换旧数据 (在React中推荐的是进行替换)

时间旅行

对于时间旅行功能,在React中使用不可变性就显得比较重要了,这让数据回溯成为可能。

跟踪数据的变更

在React Fiber 架构中,在渲染时,渲染树都有与之对应的备份渲染树(即之前渲染树),在利用不可变性数据后,使得跟踪数据变更变的容易

确定React在何时进行重新渲染

不可变性的主要优势在于可以帮助我们再React中创建Pure Components,我们可以更容易确定数据是否发生变更,是否需要进行重新渲染。

immutable 与 immer

immutableimmer 都是用于解决JS不可变性的问题的库。

immutable 为了解决不可变性问题,有自己的一套数据结构:List、Map等,对应这原生JS的各个数据结构,并提供了相应的转换API和工具函数。具体可到官方文档处进行浏览。

immer 属于长江后浪推前浪,api更精简,使用更方便。在源码中使用了ES6的Proxy对象,来对操作进行拦截并判断数据是否发送变更,来达到实现不可变性

参考
1.react中文文档——why-immutability-is-important
2.immutable.js官方文档
3.immer.js官方文档

相关文章

  • React中的不可变性

    在React中,有两种改变数据的方式: 直接修改数据的值 使用新的数据来替换旧数据 (在React中推荐的是进行...

  • python的“不可变性”代表了什么?

    在python中,每一个对象都可以分为不可变性或者可变性。 不可变性可以用来保证在程序中保持一个对象的固定不变。 ...

  • React修改数组对象的注意事项

    react开发主张使用函数式编程,函数式编程有个重要的特性就是不可变性。 你无法更改数据,也不能更改。 如果要改变...

  • Java(二)Java基础--03String

    一、字符串的不可变性 图解Java字符串的不变性 二、JDK 6 和 JDK 7 中 substring 的原理及...

  • 2018-01-09

    Immutable Updates in React and Redux React和Redux中的不可变更新 H...

  • Diagram to show Java String’s Im

    图解java中String的不可变性 翻译自 What is string immutability 定义字符串 ...

  • 关于Java中的不可变性

    1 场景 在面向对象编程里,不变性是一个有点冷门的话题,一般在考察String特性的面试题中比较常见,但其实不变性...

  • 读Rust程序设计语言 - 03

    语言/Rust 变量与可变性 - Rust 程序设计语言 简体中文版 变量和可变性 在rust中变量是默认不可变的...

  • 不可变性

    可以通过创建一个不可变的共享对象来保证对象被多个线程共享时不会被修改(通俗点讲就是,不提供修改方法) 注意不可变性...

  • 不可变性

    不可变性 一般来说,有两种改变数据的方式。第一种方式是直接修改变量的值,第二种方式是使用新的一份数据替换旧数据。 ...

网友评论

      本文标题:React中的不可变性

      本文链接:https://www.haomeiwen.com/subject/etjsektx.html