De forma incremental, e só onde isso trouxer algum ganho. Classes e componentes de função interoperam bem, então não há necessidade de uma reescrita de uma vez só. Converta primeiro os componentes folha, extraia lógica compartilhada de higher order components e render props para hooks customizados, e mantenha as error boundaries como classes já que elas ainda precisam ser. Amarre cada conversão a um trabalho que você já está fazendo, com testes em cima de comportamento e não de implementação.
Por que os entrevistadores perguntam isso
Essa é uma pergunta de julgamento disfarçada de pergunta de migração. O entrevistador quer ver se você queimaria um trimestre numa reescrita sem benefício visível para o usuário ou se encontraria um caminho incremental. Ele também está checando conhecimento prático: quais métodos de ciclo de vida mapeiam limpo para efeitos, quais não, e que error boundaries não podem ser convertidas, mais como você evita regressões sem cobertura completa.
Como estruturar sua resposta
- Rejeite a reescrita de uma vez só e diga por que o incremental funciona aqui.
- Dê sua ordem: folhas primeiro, lógica compartilhada para hooks customizados.
- Nomeie as peças que não convertem de forma limpa.
- Explique como você se protege de regressões e mede o progresso.
Exemplo de resposta
Eu não faria isso como um projeto, eu faria como um hábito. Classes e componentes de função convivem numa boa, então não existe força obrigando a converter tudo, e uma reescrita sem mudança visível para o usuário é difícil de vender e uma ótima forma de introduzir bugs. Então a regra vira: se você já está mexendo num arquivo, e ele é uma folha ou quase folha, converta. O prêmio de verdade não são os componentes de qualquer forma, é a lógica compartilhada presa em higher order components e render props, porque aquilo vira hooks customizados que todo mundo pode usar. Sobre o mapeamento, componentDidMount e componentWillUnmount viram um efeito com cleanup, componentDidUpdate normalmente se divide em vários efeitos por assunto, e getDerivedStateFromProps quase sempre acaba sendo estado derivado que deveria ser só calculado durante o render. Error boundaries continuam como classes, isso não mudou. Antes de converter qualquer coisa não trivial eu quero testes de nível de comportamento em volta, testando o que o usuário vê e não o estado interno, para a conversão ser comprovadamente neutra.
Vai encarar essa entrevista em breve? O GhostPilot escuta a sua chamada ao vivo, identifica a pergunta no instante em que ela é feita e coloca uma resposta estruturada na sua tela em tempo real. Teste na sua próxima entrevista simulada ou pegue um Session Pass de $29, sem assinatura, para a hora da verdade.
Veja como funcionaPerguntas de acompanhamento que você pode esperar
- Quais métodos de ciclo de vida não têm equivalente limpo em hooks?
- Como você converteria um higher order component que embrulha quarenta telas?
- Como você impede que o time migre pela metade e empaque?
Mais perguntas para Desenvolvedor React
Seu entrevistador vai fazer a própria versão desta. Cole a descrição real da vaga no Question Predictor gratuito e receba as 20 perguntas que essa vaga tem mais chance de fazer, com o que cada uma está de fato sondando.
Prever minhas perguntas