De forma incremental y solo donde aporte algo. Las clases y los componentes de función conviven sin problema, así que no hace falta una reescritura de golpe. Convierte primero los componentes hoja, extrae la lógica compartida de los componentes de orden superior y los render props a hooks personalizados, y deja los error boundaries como clases, porque todavía tienen que serlo. Ata cada conversión a trabajo que ya estás haciendo, con tests sobre el comportamiento y no sobre la implementación.
Por qué lo preguntan los entrevistadores
Es una pregunta de criterio disfrazada de pregunta de migración. El entrevistador quiere ver si quemarías un trimestre en una reescritura sin beneficio visible para el usuario o si encontrarías un camino incremental. También comprueba conocimiento práctico: qué métodos del ciclo de vida se mapean limpiamente a efectos, cuáles no, que los error boundaries no se pueden convertir, y cómo evitas regresiones sin cobertura completa.
Cómo estructurar tu respuesta
- Rechaza la reescritura de golpe y di por qué aquí funciona lo incremental.
- Da tu orden: primero las hojas, luego la lógica compartida a hooks personalizados.
- Nombra las piezas que no se convierten limpiamente.
- Explica cómo te proteges de regresiones y cómo mides el avance.
Ejemplo de respuesta
No lo haría como un proyecto, lo haría como un hábito. Las clases y los componentes de función conviven felizmente, así que no hay nada que obligue a convertirlo todo, y una reescritura sin cambio visible para el usuario es difícil de vender y una manera estupenda de introducir bugs. Así que la regla pasa a ser: si ya estás tocando un archivo, y es una hoja o casi una hoja, conviértelo. El premio de verdad no son los componentes, es la lógica compartida atrapada en componentes de orden superior y render props, porque eso se convierte en hooks personalizados que puede usar todo el mundo. Sobre el mapeo, componentDidMount y componentWillUnmount van a un efecto con su limpieza, componentDidUpdate normalmente se parte en varios efectos por área, y getDerivedStateFromProps casi siempre resulta ser estado derivado que debería calcularse durante el render. Los error boundaries siguen siendo clases, eso no ha cambiado. Antes de convertir algo no trivial quiero tests a nivel de comportamiento alrededor, que prueben lo que ve el usuario y no el estado interno, para que la conversión sea demostrablemente neutra.
¿Tienes esta entrevista a la vuelta de la esquina? GhostPilot escucha tu llamada en vivo, detecta la pregunta en cuanto la hacen y pone una respuesta estructurada en tu pantalla en tiempo real. Pruébalo en tu próxima entrevista de práctica, o coge un Session Pass de $29, sin suscripción, para la de verdad.
Mira cómo funcionaPreguntas de seguimiento que puedes esperar
- ¿Qué métodos del ciclo de vida no tienen un equivalente limpio con hooks?
- ¿Cómo convertirías un componente de orden superior que envuelve cuarenta pantallas?
- ¿Cómo evitas que el equipo migre a medias y se quede atascado?
Más preguntas para Desarrollador React
Tu entrevistador hará su propia versión de esta. Pega la descripción real del puesto en el Question Predictor gratuito y obtén las 20 preguntas que ese puesto tiene más probabilidades de hacerte, con lo que cada una busca en realidad.
Predecir mis preguntas