overreacted.io
How Are Function Components Different from Classes?
They’re a whole different Pokémon.
![](https://avatars.slack-edge.com/2020-04-30/1120561761024_d9162ee8b4208cb36904_72.png)
`useCallback` 如果忘記列 dependency,會導致 callback 一直記著過去 function 的 closure,這應該就是 memory leak 了吧 orz
![](https://avatars.slack-edge.com/2020-04-30/1120561761024_d9162ee8b4208cb36904_72.png)
這個 component 是一堆 checkbox,其中有些 checkbox 有 indeterminate state,所以有很多 handler。
我自己會覺得這種狀況底下好像寫成 class 會比較好讀。
https://github.com/answerfamily/ly/blob/master/src/components/LegislatorSections.js
![](https://secure.gravatar.com/avatar/d6fc9a3e6031c4b289195e2fd932c03b.jpg?s=72&d=https%3A%2F%2Fa.slack-edge.com%2Fdf10d%2Fimg%2Favatars%2Fava_0005-72.png)
![](https://avatars.slack-edge.com/2020-04-30/1120561761024_d9162ee8b4208cb36904_72.png)
![](https://emoji.slack-edge.com/T02G2SXKM/good/10f827110020fb3a.png)