2016-03-07 44 views
2

我建立一個reactjs應用程序,我有兩個選項,可與同一空間和不同的佈局呈現React組件隱藏或重新創建?

  1. 一個是隱藏組件的組件和附加其他部件在它上面 。

  2. 另一個選項是分別爲組件 重新渲染並重新創建DOM。

陣營使用DIFF算法來比較和改變DOM的狀態,作爲組分是已經存在於DOM所以第一溶液可以工作得更快。但是它將擁有比第二種解決方案更多的內存數據。

另一方面,在第二種解決方案中,我們必須刪除一個組件的DOM,再渲染另一個組件併爲其創建DOM。這看起來很多工作!

我很困惑,我應該遵循哪種方法?

<Component1/> 
<Component2/> 

解決方案1:Hide <Component1/> and Append <Component2/> in the same space.

解決方案2:Remove <Componen1/> and Append <Component2/> in the same space

+0

是不同的組件?組件2是否與組件1具有不同的內容? – Guy

+0

您應該測量並比較結果。最後,您很有可能會觸發瀏覽器的佈局/重繪 - 無論您最終選擇哪種選項。 – Andreyco

+0

它們有不同的內容! –

回答

1

你過早優化

這可以作爲描繪。你可能已經在這個問題上花費了更多的工程時間,而不是值得的。選項2實施起來更簡單,推理更簡單,並且是使用React時的快樂途徑。

如果在構建它之後,您覺得它執行得太慢,那麼您應該執行一些性能分析並找出瓶頸。直到並且僅當這種分析表明DOM元素的重新創建是瓶頸時才需要擔心選項1。

+0

如果在反應中更好地理解我的概念,那麼我會說這是花的時間! –