2016-04-24 59 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之外的相同體系結構,您可以始終這樣做,但這並不意味着您必須更新商店內所有更改的完整視圖,這意味着它不應成爲性能瓶頸。