리액트 github repo 보면 리액트 만든 아저씨가 미래를 위해 function 쓰는걸 권장하고 있어서 그렇게 쓸 뿐입니다
1. class 문법은 간단한거 만들 때도 this, extends, constructor, super, bind 이런 것들이 매우 더러워보이지만
function 문법은 깔끔해보입니다
2. class 문법은 state, method, JSX 부분을 딱딱 나눌 수 있기 때문에 코드가 100만줄일 경우 용도별로 정돈할 수 있어 좋습니다
function 문법은 알아서 깔끔하게 코드를 분류해야합니다 안그러면 코드 길어지면 매우 더럽습니다
각각 장단점이 있어서 팀별로 취향일 뿐입니다
그리고 redux 안에서 카피 안하고도 state 수정 도와주는 라이브러리도 있어서 setState 는 걱정 안하셔도 됩니다