Pregunta de entrevista para Desarrollador React

Escribir en una caja de filtro en una página con unos miles de filas va a tirones. ¿Cómo lo diagnosticarías y lo arreglarías?

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

Respuesta rápida

Perfila antes de cambiar nada: graba una sesión de escritura y mira si el tiempo se va en el cálculo del filtro, en renderizar las filas o en layout y pintado. Los arreglos habituales, por orden de rentabilidad, son virtualizar para que solo se rendericen las filas visibles, diferir el valor filtrado con useDeferredValue o una transición, memoizar el componente de fila y mantener el estado del input separado del de la lista.

Por qué lo preguntan los entrevistadores

Es una pregunta de rendimiento con una respuesta equivocada evidente: adivinar y repartir useMemo por todas partes. El entrevistador quiere ver un enfoque de medir primero, una lectura correcta de la salida del profiler y saber qué palanca importa de verdad a esa escala. También quiere oírte separar los dos problemas distintos: un input que se siente pegajoso y una lista que tarda demasiado en renderizar.

Cómo estructurar tu respuesta

  • Di que mides primero y nombra la herramienta que usas.
  • Separa el problema: sensación lenta al escribir frente a render lento de la lista.
  • Da los arreglos por orden de impacto, terminando en la virtualización.
  • Menciona verificar el arreglo con la misma medición.

Ejemplo de respuesta

Ejemplo hablado, en primera persona

Lo grabaría con el React Profiler y el panel de rendimiento del navegador antes de tocar código, porque hay tres causas distintas que se sienten idénticas. Si el commit es enorme, son las filas. Si el tiempo de scripting está en mi función de filtro, son los datos. Si es sacudida de layout, algo está midiendo el DOM por cada fila. Nueve de cada diez veces, con unos miles de filas, es sencillamente que se están renderizando todas, así que la virtualización es la gran victoria: renderizar solo la ventana visible más un pequeño margen. Encima de eso separo las dos actualizaciones: el input se queda urgente para que escribir se sienta instantáneo, y el resultado filtrado pasa por una transición o por useDeferredValue para que React pueda descartar trabajo caduco cuando llega la siguiente tecla. Memoizar el componente de fila ayuda una vez la lista está virtualizada, bastante menos antes. Hice esto en una lista de clientes que resultaba inservible a unas cuatro mil filas, y la virtualización más un valor diferido llevaron la interacción de unos cuatrocientos milisegundos a menos de dieciséis.

¿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é valor de margen de renderizado elegirías y por qué?
  • ¿Cómo afectaría la virtualización a la accesibilidad y a la búsqueda del navegador dentro de la página?
  • ¿Moverías el filtrado al servidor, y a partir de qué punto?

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