Too Long; Didn't Read
The official React documentation suggests 3 possible ways to handle form submission/validation: Controlled components, Uncontrolled components and Fully-fledged solutions (3rd party libs) But none of these 3 methods are particularly appealing to me. I personally don’t like controlled components as it involves manual state management that, most of the times, leads to unneeded and inefficient re-renderings. We are left with the non trivial task of implementing the logic to validate and collect the form data. HTML5 already has the ability to validate most user data without relying on JavaScript.