没有React的Flux ..是可靠的选择吗?

时间:2016-04-24 17:28:18

标签: reactjs flux

我从Flux文档中了解到,它建议为商店引发的任何微小更改重新呈现视图。但是如果我在没有React的情况下使用Flux会使虚拟DOM重新渲染完整视图并仅渲染差异。

如果我只想在没有React的情况下实现Flux,那么不会重新渲染完整视图,因为存储中的每个大坝变化都会成为性能瓶颈。?

2 个答案:

答案 0 :(得分:2)

Flux不建议重新渲染由Store引发的次要更改的视图,而是让您控制DOM重新渲染的时间。

  

来自Flux文档,   From the flux docs

  1. 商店会根据操作自行更新,但这不会影响视图。
  2. 仅当商店发出更改事件时,视图才会更新,这意味着,Flux可让您完全控制何时更新视图。
  3. 此外,所有视图都不会更新,只有那些监听Store内特定变量更改的( controller-views )才会更新。这使您的应用程序更具性能。

    如果您希望在React之外遵循相同的架构,您可以随时执行此操作,但这并不意味着您必须更新商店内所有更改的完整视图,这意味着它不应成为性能瓶颈。

答案 1 :(得分:0)

您的担忧是正确的:重新渲染任何状态更改的整个视图都会破坏您应用的效果。

由于React能够有选择地更新DOM,因此重新渲染视图可以很好地与React和Flux一起使用。当您更改组件上的prop时,React会将内存中的整个DOM重建为“虚拟DOM”,而不会将更改推送到实际DOM。然后它只应用这个虚拟DOM和真实DOM之间的差异,使其成为一个非常有效的过程。

如果您想在没有React的情况下使用Flux,您需要自己管理更新过程。因此,例如,如果您的州有50个不同的值并且您更改了一个,则需要确定与该值相关联的元素并相应地更新它们,而保持其他值不变。