Pregunta de entrevista para Desarrollador React

Explícame qué pasa cuando React vuelve a renderizar un componente. ¿Cómo decide la reconciliación qué llega de verdad al DOM?

Qué evalúa el entrevistador, cómo estructurar tu respuesta y un ejemplo hablado que puedes adaptar.

Respuesta rápida

Cuando cambia el estado, React vuelve a ejecutar la función del componente para producir un nuevo árbol de elementos y luego lo compara con el árbol anterior. Contrasta tipos de nodo y keys posición por posición: si el tipo es el mismo, React actualiza las props en el sitio; si el tipo es distinto, desmonta el subárbol viejo y monta uno nuevo. Solo el conjunto mínimo de cambios resultante se aplica al DOM real.

Por qué lo preguntan los entrevistadores

Esto separa a quien ha memorizado la sintaxis de los hooks de quien entiende el modelo que hay debajo. El entrevistador quiere oír que sabes que renderizar no es lo mismo que aplicar cambios al DOM, que el tipo de elemento y la key guían el diff, y que eso explica bugs reales como el estado que se reinicia cuando un componente se mueve dentro del árbol. También prepara el terreno para preguntas de seguimiento sobre memoización y rendimiento.

Cómo estructurar tu respuesta

  • Separa la fase de render de la fase de commit en tu primera frase.
  • Explica las reglas del diff: mismo tipo actualiza en el sitio, tipo distinto vuelve a montar.
  • Di qué hacen las keys y por qué importan en las listas.
  • Cierra con una consecuencia real, como la pérdida de estado cuando un subárbol se remonta.

Ejemplo de respuesta

Ejemplo hablado, en primera persona

Cuando cambia el estado, React llama otra vez a la función del componente y eso le da un nuevo árbol de elementos. Esa es la fase de render, y todavía no ha tocado el DOM. Después recorre el árbol nuevo contra el viejo. En cada posición mira primero el tipo de elemento. Si es el mismo tipo, digamos que un div sigue siendo un div, conserva el nodo del DOM y el estado que ya existían y solo parchea las props que cambiaron. Si el tipo es distinto, tira el subárbol entero y construye uno nuevo, así que cualquier estado que hubiera dentro desaparece. En las listas usa keys en lugar de la posición pura, de forma que los elementos pueden moverse sin reconstruirse. Luego todos los cambios recogidos se aplican en una sola pasada de commit. Esto me importa en la práctica porque una vez depuré un formulario que se reiniciaba con cada tecla, y era porque el padre lo renderizaba dentro de un condicional que cambiaba el tipo del elemento contenedor. Cuando conoces las reglas del diff, eso pasa de ser una tarde perdida a un arreglo de cinco minutos.

¿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 funciona

Preguntas de seguimiento que puedes esperar

  • ¿Qué le pasa al estado de un componente cuando el tipo de elemento cambia en la misma posición?
  • ¿Cómo agrupa React varias actualizaciones de estado dentro de un mismo manejador de eventos?
  • ¿En qué cambia todo esto el React Compiler?

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

Ensaya las preguntas difíciles antes de que te las hagan

Practica con un copiloto en vivo y entra preparado. Un Session Pass de $29 te lleva a través de la entrevista sin suscripción y sin ataduras.

Consigue GhostPilot