Pregunta de entrevista para Desarrollador React

¿Cuáles son las reglas de los hooks y por qué existen?

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

Respuesta rápida

Llama a los hooks solo en el nivel superior de un componente o de otro hook, nunca dentro de una condición, un bucle o un callback anidado, y solo desde funciones de React. La razón es que React guarda el estado de los hooks como una lista ordenada en el fiber y asocia cada llamada a una posición por orden de llamada, no por nombre. Cambia el orden entre renders y todos los hooks a partir de ahí leerán la posición equivocada.

Por qué lo preguntan los entrevistadores

Las reglas son fáciles de recitar, así que el entrevistador en realidad pregunta por el porqué. Quien explica la lista ordenada de posiciones entiende la implementación y razonará bien sobre hooks personalizados, lógica condicional y supresiones del linter. También abre de forma natural una pregunta de seguimiento sobre cómo estructuras el código cuando solo necesitas algo condicionalmente, que es donde los candidatos más flojos empiezan a escribir hooks dentro de bloques if.

Cómo estructurar tu respuesta

  • Enuncia las dos reglas de forma llana y breve.
  • Explica el mecanismo de posiciones por orden de llamada como la razón.
  • Describe qué se rompe de verdad cuando cambia el orden.
  • Di cómo resuelves necesidades condicionales sin saltarte las reglas.

Ejemplo de respuesta

Ejemplo hablado, en primera persona

Dos reglas: los hooks van en el nivel superior y solo se llaman desde un componente o desde otro hook. La razón es la implementación. React no conoce los nombres de tus hooks, mantiene una lista en el fiber y mueve un cursor por ella mientras se ejecuta tu función, así que la primera llamada a useState se queda con la posición uno, la segunda con la dos, y así. Si envuelves un hook en un if, en algunos renders el cursor cae una posición desplazado y todos los hooks siguientes leen el estado del hook anterior. Aparecen fallos rarísimos donde un booleano se convierte en una función. Cuando de verdad necesito algo condicional, siempre llamo al hook y hago que el propio hook no haga nada, por ejemplo pasando un flag enabled a un hook de query, o subo la bifurcación un nivel para que los dos caminos sean componentes separados. Mantengo las reglas de eslint activadas y trato cualquier supresión como algo que necesita un comentario explicando exactamente por qué.

¿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

  • ¿Cómo manejarías un hook que solo necesitas a veces?
  • ¿Qué detecta de verdad el plugin de eslint y qué se le escapa?
  • ¿Cómo escribirías un hook personalizado que componga otros dos hooks?

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