Упираешься в сложность поддерживать код. На маленьких проектах с простой логикой пойдет и просто чистый реакт. С ростом проекта и тем более если проект делают несколько программистов, то поддерживать код становиться сложно. Особенно в react, где код вместе с версткой читать такой код сложно. Второй момент это разделение логики и представления. В своих проектах я использую
redoor.
Просто подключить:
const ButtonPlus = Connect(
({cxRun})=><button onClick={e=>cxRun('a_click')}>plus</button>
)
А акшенсы просто лежат отдельно в фале в виде:
export const a_click = ({state,args})=>({ cnt:(state.cnt + 1) })