🎋 竹子日誌

Component 卸載,非同步要清理

不管你是寫什麼前端框架,你一定有一些行為是 Component Mounted 的時間點要執行。執行時也很常會有「非同步」行為。

常態來說,可能要打 API 行為,可能有一些 IO 建立的行為,凡是所有你需要使用 async 或是 Promise 都是。但大家很常做的事情是⋯⋯直接就接著非同步的 callback 直接執行。

但有一種狀況,就是元件被掛載馬上就要被卸載。就像是 React 的嚴格模式,或是使用者互動進去元件後馬上跳出⋯⋯諸如此類。但我發現很多人不會去「清除非同步的 callback」,那很常埋下一些潛在的風險。因為元件卸載後 callback 並不會中止執行,它們依然會把非同步執行完成,程式中就會執行「沒有需要的行為」。

趕快檢查你的元件是不是常常在元件掛載後執行非同步,確認一下卸載有沒有好好清理!

留言