[英]What might be the cause of slow react performance?
我正在支持基於React的CMS,但我陷入了性能問題,因為添加10個新輸入字段會使瀏覽器處理時間增加1秒。 這不是我的代碼,我沒有React的經驗。 我有分析方面的經驗,並對渲染引擎的工作原理有一個大概的了解。
我已經鈎住了ReactCompositeComponent._updateRenderedComponent函數,以查看主要性能瓶頸在哪里,而且區別似乎是我受到了很多歡迎。 在日歷輸入中添加40個轉發器項目會導致性能差異(表格必須支持200多個輸入,當前需要20秒):
是什么會導致僅添加幾個元素就產生如此多的點擊?
這是Chrome DevTool分析圖(單擊以查看完整大小):
可能有許多原因影響反應性能
密鑰在呈現長列表時的作用,密鑰對於比較實際dom和虛擬dom是至關重要的。
變異對象,如果變異了對象,則ShouldComponentUpdate無法執行檢查並毫不費力地觸發更新生命周期。
API僅在ComponentDidMount中調用,安裝部件中的任何其他生命周期都將不必要地調用render方法。
對輸入參數使用去抖/油門以避免不必要的函數/ API調用
使用虛擬化的React庫,同時渲染長列表,因為它將減少大量的dom元素。
使用插件react-addons-perf計算性能。
盡早綁定函數,避免綁定到渲染函數中
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.