相关疑难解决方法(0)

在React中使用不可变状态有什么缺点?

我已经使用有状态存储以"正常"方式构建了我的第一个React应用程序,现在我正在研究使用Este starterkit中使用的不可变全局状态.

  • 所有商店的状态保存在一个不可变的数据结构中
  • 组件没有状态,但基于商店getter函数访问render()中的数据
  • 商店也是无状态的,但使用游标改变其域的全局应用程序状态.
  • 顶级应用程序组件侦听状态更改,并重新呈现整个组件树.
  • 组件被实现为"纯粹"意味着他们使用shouldComponentUpdate来有效地计算出它们在重新渲染中可以被跳过.

它以几种方式简化了应用程序结构:

  • 组件不会侦听存储,也不会将存储数据复制到本地状态.他们只是在每个渲染上抓住他们的商店状态.
  • 全局状态始终是整个应用程序的快照,使调试和添加撤消功能更容易.
  • 全局状态似乎简化了同构渲染.

我只读了关于在React中使用不可变数据的积极的事情,建议避免组件中的状态,所以我想知道是否有任何缺点.我想一定有,因为否则我不明白为什么它不推荐,因为构建应用程序做出反应的方式.

不变性对我来说是新的,所以如果我在一个复杂的真实应用程序中开始使用这种方法,我应该注意一些警告吗?

我能想到的唯一一件小事是在Este使用它时使用forceUpdate(),因为我已经读过它是一个同步函数.例如,Morearty似乎将更新推迟到下一个动画帧以便批量处理它们,但我认为这是一个实现细节/优化,而不是一些继承的不可变单态方法的缺点.

javascript immutability reactjs immutable.js

23
推荐指数
2
解决办法
4545
查看次数

标签 统计

immutability ×1

immutable.js ×1

javascript ×1

reactjs ×1