Componentes: A partir da versão 16.8 do React, foi introduzido o conceito de Hooks, que trouxe uma nova dinâmica. Avalie as assertivas relacionadas com a motivação de sua criação. I) Classes em React sempre foram uma forma confusa de utilizar, como por exemplo a utilização do this. Em componentes complexos, isso se tornava cada vez mais difícil sua reutilização. II) Componentes complexos e grandes eram difíceis de refatorar. III) A partir dessa versão, componentes de classes foram excluídas, forçando que todo o código antigo fosse refatorado. Quais são as afirmativas CORRETAS?
A partir da versão 16.8 do React, foi introduzido o conceito de Hooks, que trouxe uma nova dinâmica. Avalie as assertivas relacionadas com a motivação de sua criação. I) Classes em React sempre foram uma forma confusa de utilizar, como por exemplo a utilização do this. Em componentes complexos, isso se tornava cada vez mais difícil sua reutilização. II) Componentes complexos e grandes eram difíceis de refatorar. III) A partir dessa versão, componentes de classes foram excluídas, forçando que todo o código antigo fosse refatorado. Quais são as afirmativas CORRETAS?
A) I, II e III.
B) I e III.
C) I e II.
D) II e III.
E) Apenas a I.
Vamos analisar cada assertiva à luz da motivação da criação dos Hooks (introduzidos no React 16.8):
I) Correta. Um dos motivos para Hooks foi reduzir dificuldades com classes, como confusão com o uso de this, necessidade de bind de métodos e complexidade ao reutilizar lógica de estado/efeitos entre componentes. Em componentes grandes/complexos, a reutilização de lógica tendia a ficar mais difícil (muitas vezes exigindo HOCs, render props, etc.).
II) Correta. Outro problema conhecido era que componentes muito grandes e complexos (especialmente com muita lógica misturada ao ciclo de vida) ficavam difíceis de entender e refatorar, porque responsabilidades se misturavam e o código evoluía com acoplamentos.
III) Incorreta. A introdução dos Hooks não excluiu componentes de classe. Classes continuaram suportadas; não houve obrigação de refatorar todo código antigo. Hooks foram uma alternativa para escrever componentes funcionais com estado e outros recursos.
Logo, as corretas são I e II.