Seria melhor se tivesse feito o código junto com os alunos ao invés de entregar um código completo, e depois fazer alterações. Eu sei o que foi feito, mas não o porque está sendo feito. Qual foi o propósito das mudanças feitas nessa aula?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Seria melhor se tivesse feito o código junto com os alunos ao invés de entregar um código completo, e depois fazer alterações. Eu sei o que foi feito, mas não o porque está sendo feito. Qual foi o propósito das mudanças feitas nessa aula?
Olá, Diego!
A refatoração mudou a arquitetura de Controle via Estado (Props) para Controle via Referência (Métodos). O objetivo principal foi resolver o Prop Drilling: antes, você precisava passar o estado estaAberta por vários componentes intermediários desnecessariamente. Agora, com ref, o componente pai comanda a Modal diretamente.
Removemos o useEffect para otimizar a performance, evitando que a Modal renderize toda vez que um estado mude; agora ela só age quando recebe uma ordem direta. O forwardRef foi necessário tecnicamente porque componentes React não aceitam referências por padrão, e a interface ModalHandle serve para o TypeScript reconhecer que essa referência possui os métodos open e close.
Basicamente, o código ficou mais limpo e performático, preparando o terreno para você usar o hook useImperativeHandle na sequência.
Espero ter ajudado!
Bons estudos!
Sucesso ✨