鍍金池/ 問答/HTML/ React使用setTimeout是否有必要清除定時器,為什么?

React使用setTimeout是否有必要清除定時器,為什么?

React使用setTimeout是否有必要清除定時器,為什么?

回答
編輯回答
蝶戀花

倒不是性能的問題,關(guān)鍵在于無法確?;卣{(diào)函數(shù)不會在組件卸載后調(diào)用。一旦出現(xiàn)該情況,this將變成undefined,代碼會報錯。

從這個角度看,任何異步事件都應(yīng)該在組件卸載時取消訂閱/監(jiān)聽,包括pub/sub、dom事件等

2018年1月27日 00:25
編輯回答
葬憶

定時器 組建銷毀是建議還是清楚 影響性能

2018年1月29日 18:03
編輯回答
拮據(jù)

有的,所有的單頁應(yīng)用都應(yīng)該主動清除。
為什么呢?因為是單頁應(yīng)用,定時器是運行后是存在內(nèi)存中的,即使切換路由,也還是在這個頁面沒有離開,所以還是會繼續(xù)運行的。
為什么傳統(tǒng)頁面不需要清除呢?因為傳統(tǒng)頁面是多頁的,點擊一個鏈接不是跳轉(zhuǎn)路由,而是打開一個新的頁面,舊頁面內(nèi)存中的數(shù)據(jù)都被自動清除了。

2017年11月18日 13:23
編輯回答
汐顏

要,否則當(dāng)你離開頁面之后,如果定時器觸發(fā),而你又讀取了this之類的參數(shù),直接undefined錯誤

2017年2月13日 12:10