0Pricing
React Academy · Lección

Cuándo utilizar API imperativas frente a declarativas

Comprenda las ventajas y desventajas, y decida cuándo está justificado recurrir a refs y handles imperativos.

Cuándo utilizar API imperativas frente a declarativas es una lección gratuita de React Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de React Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de React Academy incluye 4 lecciones en total.

React es declarativo de forma predeterminada

React fomenta un estilo declarativo: describe cómo debería verse la interfaz para un estado determinado y React reconcilia el DOM para que coincida. La mayor parte del comportamiento fluye mediante props y estado, en lugar de comandos directos sobre el DOM.

Este modelo hace que las interfaces sean predecibles, ya que la salida renderizada es una función pura del estado y no el resultado de una secuencia de mutaciones manuales.

Cuándo lo declarativo no es suficiente

Algunas interacciones no se expresan bien de forma puramente declarativa. Enfocar un elemento de forma imperativa, activar una animación en un momento preciso o controlar un widget DOM de terceros a menudo no puede representarse limpiamente como una función del estado.

Para estos casos, React proporciona vías de escape como las refs y los handles imperativos, que deben utilizarse con moderación cuando las props declarativas no son suficientes.

El coste del código imperativo

Las API imperativas implican ciertos costes. Son más difíciles de probar, ya que debe invocar métodos y observar efectos secundarios, y pueden romper el flujo de datos unidireccional que hace que las aplicaciones de React sean fáciles de seguir.

Las llamadas imperativas también tienden a dispersar el comportamiento entre los gestores de eventos en lugar de concentrarlo en una correspondencia clara entre estado e interfaz, lo que aumenta el coste de mantenimiento.

Regla práctica

Prefiera las API declarativas y recurra a las imperativas solo para interacciones y mediciones: foco, desplazamiento, animaciones, reproducción multimedia y lectura de tamaños o posiciones.

Si algo puede modelarse como un estado que se corresponde con una salida renderizada, hágalo así. Si se trata de una acción momentánea sin una representación clara en el estado, un handle imperativo es apropiado.

Modal declarativo frente a imperativo

Un modal declarativo se renderiza según una prop isOpen que controla el componente padre, por lo que la visibilidad depende del estado. Un modal imperativo expone los métodos open y close y oculta su propio estado tras un handle.

La versión declarativa encaja mejor con el flujo de datos de React y suele ser la preferida, mientras que la versión imperativa puede resultar práctica cuando la activación debe producirse desde código disperso y controlado por eventos.

Restablecer un formulario: prop key frente a restablecimiento imperativo

Puede restablecer un formulario de forma declarativa cambiando su prop key, lo que obliga a React a montarlo de nuevo con el estado predeterminado. No hace falta ninguna llamada imperativa.

La alternativa imperativa expone un método reset en un handle. El truco de key suele ser más limpio porque se apoya en la reconciliación de React en lugar de borrar el estado manualmente.

Prefetch del router como ejemplo imperativo

El router de Next.js expone métodos imperativos como push, replace y prefetch. Precargar una ruta antes de una navegación probable es una acción, no una parte del estado de renderizado, por lo que una llamada imperativa encaja de forma natural.

Esto demuestra que incluso las herramientas idiomáticas de React utilizan API imperativas cuando la operación es fundamentalmente una acción que se activa en un momento concreto.

Las refs son vías de escape

Las directrices oficiales presentan las refs y los handles imperativos como vías de escape: herramientas para salir del modelo declarativo cuando realmente es necesario. No son la forma predeterminada de crear funcionalidades.

Mantener esta perspectiva evita usarlos en exceso: recurra a una vía de escape solo después de confirmar que las props y el estado no pueden expresar el comportamiento de forma limpia.

Lista de comprobación resumida

Antes de añadir un handle imperativo, pregúntese: ¿puede modelarse como un estado que se corresponda con la interfaz? Si es así, manténgalo declarativo. ¿Se trata de una acción de foco, desplazamiento, medición, animación o de una biblioteca de terceros? Si es así, puede estar justificado usar un enfoque imperativo.

Confirme también que la superficie sea reducida y esté documentada, y que no esté utilizando una ref simplemente para pasar datos que podría transportar una prop.

Equilibrar ambos estilos

Las aplicaciones reales combinan ambos enfoques. La gran mayoría de la lógica permanece declarativa, con una fina capa de handles imperativos para el reducido número de interacciones que los necesitan.

Encontrar este equilibrio mantiene el código predecible y fácil de probar, y al mismo tiempo permite gestionar el foco, controlar contenido multimedia e integrar bibliotecas cuando el código declarativo no puede hacerlo.

Comprobación rápida: declarativo frente a imperativo

Elija cuándo una API imperativa es la herramienta adecuada.

Repaso: declarativo frente a imperativo

De forma predeterminada, React utiliza una interfaz declarativa controlada por props y estado, lo que resulta predecible y fácil de probar. Los handles imperativos existen como vías de escape para el foco, el desplazamiento, las animaciones, las mediciones y el control de DOM de terceros.

Compare los modales declarativo e imperativo, prefiera la prop key para restablecer formularios y recuerde que incluso el router de Next.js utiliza métodos imperativos para las acciones. Mantenga la capa imperativa reducida, documentada y justificada.

Preguntas frecuentes

¿La lección «Cuándo utilizar API imperativas frente a declarativas» es gratis?

Sí — el texto completo de «Cuándo utilizar API imperativas frente a declarativas» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de React Academy, actualiza a CoddyKit PRO. El curso de React Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Cuándo utilizar API imperativas frente a declarativas»?

Comprenda las ventajas y desventajas, y decida cuándo está justificado recurrir a refs y handles imperativos. Practicas React Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar React Academy?

No se requiere experiencia previa. React Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.

¿Cuánto tiempo toma la lección «Cuándo utilizar API imperativas frente a declarativas»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de React Academy?

Sí. Cada lección de React Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. forwardRef: exposición de referencias DOM a componentes padre
  2. useImperativeHandle: valores de instancia personalizados
  3. Creación de una API imperativa para componentes
  4. Cuándo utilizar API imperativas frente a declarativas
← Volver a React Academy