解決的問題:
頁面卡頓的問題。因為v15的版本,從調(diào)用setstate,到產(chǎn)生新虛擬樹和老虛擬樹比對生成更新列表,更新倆表在更新真實的dom節(jié)點。而新老虛擬dom的對比耗時會隨著項目復(fù)雜度增加,所以如果時間過程頁面就會變卡頓了。
卡頓的原因:FPS,動畫之行之所以感覺是連續(xù)性的,是以極快的速度播放靜態(tài)的圖片,,利用視網(wǎng)膜殘留效應(yīng)讓人產(chǎn)生動起來的錯覺。同理 瀏覽器 繪制頁面,這個頻率是每秒60次,也就是16毫秒(1楨)就要進(jìn)行一次周期性的重繪行為。
v16 利用 requestAnimationFrame 和 requestCallback來解決。
requestAnimationFrame:告訴瀏覽器,在下一次重繪之前調(diào)用這個方法接受的回調(diào)函數(shù)

requestAnimationFrame(function(){ // do something })
requestldleCallback:當(dāng)瀏覽器美楨渲染出現(xiàn)空余時間就調(diào)用注冊的回調(diào),如果還有回調(diào)沒有觸發(fā)就放在以后的空余時間中調(diào)用