2016-03-20 117 views
0

我創建選項卡,如圖所示:陣營標籤導航速度慢

http://codepen.io/trey/post/tabbed-navigation-react

它似乎很少的內容很好地工作,但渲染表減慢標籤之間的切換,尤其是在移動設備上有一個明顯的延遲。

這裏有一個表的例子:

http://jsfiddle.net/xn2bv6v5/

var Content = React.createClass({ 
    render: function(){ 
    ... 

什麼是對緩慢的原因是什麼?

使用我的實際更復雜的數據,需要3-4秒才能切換移動設備上的選項卡。我也試着改變它,以便標籤切換兩個內容組件的可見性,而不是改變一個組件的渲染效果,但這似乎沒有任何影響。

唯一有幫助的是用純js切換內容元素的可見性,所以沒有反應呈現發生,所以肯定有一些根本錯誤的反應部分,我只是不知道是什麼?

回答

0

如果您的初始渲染時間在性能方面不是問題,您可以同時渲染所有標籤內容,然後放入顯示/隱藏它們的簡單包裝中。然後只切換他們的知名度。確保可見性切換位於與大量內容不同的組件中。

然後確保您對內容和任何更深的元素執行shouldComponentUpdate,以便React可以在知道沒有變化時更快地跳過差異組件。將您的更深層次的佈局分解爲幾個組件,並使用良好的功能shouldComponentUpdate函數應該對您的視圖進行更新。

下面的文檔,可以在shouldComponentUpdate,你應該如何實現它的一些詳細信息以及它如何幫助提高性能:https://facebook.github.io/react/docs/advanced-performance.html