使用react hook解決antd tabs抖動問題


前言:最近在項目中遇到一個問題,就是使用ant的tabs組件切換tab時候遇到閃爍、抖動問題。

苦思幾天,也沒解決,沒想到本質問題。直到昨晚同事也遇到這個問題,發現不管是ant vue還是ant react都有這個問題,上網一查確實有相同經歷的小伙伴。

發現根本問題:當切換時候去有請求數據就會出現抖動問題,因為請求數據時候,有觸發setState導致state更新,繼而導致class組件中的state頻繁更新(我們知道class組件state中某個值變化時候會導致state多次更新,從而觸發頁面渲染,也就是說其實是多次頻繁渲染導致的問題)。

 

 

 

上面截圖的每一行selectKey都代表着tabs組件重新渲染一次,每次重新渲染時候,組件重新觸發組件的動畫效果(這里其實可以關閉動畫效果來解決,但是不推薦),從而變成頻繁抖動。

最后,整理下思路,把這個問題解決。

解決辦法:使用hook組件中的memo方法來解決

把Tabs部分抽出來寫成單獨的hook函數組件,然后用memo方法來控制這個selectKey在值不變的前提下組件只進行一次渲染。

 

關於hook組件的memo知識,可以查看下我的這篇文章   https://www.cnblogs.com/seemoon/p/12792987.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM