Pelo pouco que sei de React (sou fullstack há 3 anos), achei essa solução bem ruim na questão de performance. Digo isso por salvar o state em um objeto, o que faz com que o React tenha mais dificuldade de fazer diff em formulários grandes. Até onde eu sei, a melhor forma seria uma lib própria pra isso, como o react-hook-form.
Por favor, me corrijam se eu estiver errado
Sim, como ele disse, pra uma pagina de login é uma otima solução, porem sem voce vai fazer um formulario grande em outro lugar e ja ta utilizando uma biblioteca, é uma boa ja implementar em tudo que é lugar kkk, porem como aprendizado é uma ótima estrutura, aprender o conceito de context e uso de estados.
Com toda certeza, por isso que na ultima sessão do post eu escrevi:
Claro que essa estrutura não é a solução perfeita (muito longe disso inclusive) numa aplicação mais robusta com certeza o ideal é utilizar alguma biblioteca madura e segura, mas para pequenos projetos essa estrutura pode ser bem interessante e agilizar muita coisa
O objetivo dessa estratégia não é ser melhor que um biblioteca, é resolver pequenos casos e evitar overengineering. Atualizei o post colocando essa observação já no inicio.