配列を操作するのにpushは破壊的な操作であり、stateを
更新するのに向いていないというのを聞いて、
意味がよく分からなかったので調べてみることに。
破壊的操作:配列そのものを直接書き換える
非破壊的操作:元の配列とは別に新しく配列を作って処理をする
破壊的操作にはpush,splice,pop
非破壊的操作にはslice,concat,mapが挙げられる
破壊的メソッドの方が高速だが、配列そのものを変えることで
意図しないエラー・結果が返ってくるので
頻繁に値が更新されるstateとは極力組み合わせない方が
いいということ。
今まではpush高速だし万能やんと思って使っていましたが
考え方が変わりました。