2016-04-24 65 views
0

我从Flux文档中了解到,它建议对商店提出的任何小改动重新呈现视图。但是如果我使用的是没有React的Flux,那么它会通过虚拟DOM重新渲染完整的视图并渲染差异。Flux without React ..是可靠的选择吗?

如果我只想实现没有React的Flux,那么将不会重新呈现商店中每个大坝更改的完整视图是性能瓶颈。

回答

0

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

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

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

2

Flux不建议重新呈现视图,以供Store引发的次要更改,但是可以授权您控制DOM何时重新呈现。

从流量文档, From the flux docs

  1. 存储更新自己在应对行动,但这并不影响观。
  2. 只有当商店发出变化事件时,该视图才会更新,这意味着,Flux可让您完全控制何时希望更新视图。

此外,所有的意见没有得到更新,只有那些(控制器意见),该听的商店内特定变量的变化进行更新。这使您的应用程序更具性能。

如果您希望遵循React之外的相同体系结构,您可以始终这样做,但这并不意味着您必须更新商店内所有更改的完整视图,这意味着它不应成为性能瓶颈。