我从Flux文档中了解到,它建议为商店引发的任何微小更改重新呈现视图。但是如果我在没有React的情况下使用Flux会使虚拟DOM重新渲染完整视图并仅渲染差异。
如果我只想在没有React的情况下实现Flux,那么不会重新渲染完整视图,因为存储中的每个大坝变化都会成为性能瓶颈。?
答案 0 :(得分:2)
Flux不建议重新渲染由Store引发的次要更改的视图,而是让您控制DOM重新渲染的时间。
此外,所有视图都不会更新,只有那些监听Store内特定变量更改的( controller-views )才会更新。这使您的应用程序更具性能。
如果您希望在React之外遵循相同的架构,您可以随时执行此操作,但这并不意味着您必须更新商店内所有更改的完整视图,这意味着它不应成为性能瓶颈。
答案 1 :(得分:0)
您的担忧是正确的:重新渲染任何状态更改的整个视图都会破坏您应用的效果。
由于React能够有选择地更新DOM,因此重新渲染视图可以很好地与React和Flux一起使用。当您更改组件上的prop时,React会将内存中的整个DOM重建为“虚拟DOM”,而不会将更改推送到实际DOM。然后它只应用这个虚拟DOM和真实DOM之间的差异,使其成为一个非常有效的过程。
如果您想在没有React的情况下使用Flux,您需要自己管理更新过程。因此,例如,如果您的州有50个不同的值并且您更改了一个,则需要确定与该值相关联的元素并相应地更新它们,而保持其他值不变。