Preguntas y respuestas de entrevista para React Native Junior

Milad Bonakdar
Autor
Practica preguntas de entrevista de React Native junior sobre componentes, hooks, navegación, llamadas API, listas, AsyncStorage y bases móviles.
Introducción
En una entrevista junior de React Native, lo normal es que evalúen si puedes crear pantallas móviles sencillas con React, explicar el renderizado nativo, manejar estado con hooks, navegar entre pantallas, consumir datos de una API y guardar datos locales no sensibles. Una buena respuesta es práctica: qué usarías, cuándo lo evitarías y qué trade-off implica en iOS y Android.
Usa esta guía para practicar las preguntas que más probablemente aparecen en un primer puesto de React Native. Prioriza fundamentos de React, componentes principales, navegación, formularios, listas, llamadas API, almacenamiento y depuración móvil en lugar de memorizar detalles de librerías.
Fundamentos de React (6 preguntas)
1. ¿Qué es React Native y en qué se diferencia de React?
Respuesta:
- React: Biblioteca de JavaScript para construir interfaces de usuario web
- React Native: Framework para construir aplicaciones móviles nativas utilizando React
- Diferencias clave:
- React Native renderiza a componentes nativos (no al DOM)
- Utiliza APIs nativas en lugar de APIs web
- Diferente enfoque de estilo (sin CSS, utiliza StyleSheet)
- Código específico de la plataforma para iOS y Android
Frecuencia: Muy común Dificultad: Fácil
2. ¿Cuáles son los componentes principales en React Native?
Respuesta: React Native proporciona componentes incorporados que se asignan a los elementos de la interfaz de usuario nativa:
- View: Componente contenedor (como
diven web) - Text: Muestra texto (todo el texto debe estar en el componente
Text) - Image: Muestra imágenes
- ScrollView: Contenedor desplazable
- TextInput: Campo de entrada de texto
- TouchableOpacity/Pressable: Elementos táctiles
- FlatList: Renderizado eficiente de listas
- Button: Componente de botón básico
Frecuencia: Muy común Dificultad: Fácil
3. Explica la diferencia entre View y ScrollView.
Respuesta:
- View: Contenedor estático. El contenido que excede los límites de la pantalla no es desplazable.
- ScrollView: Contenedor desplazable. Renderiza todos los hijos a la vez (puede consumir mucha memoria para listas grandes).
- Cuándo usar:
- View: Para layouts que caben en la pantalla
- ScrollView: Para pequeñas cantidades de contenido desplazable
- FlatList: Para listas grandes (renderiza solo los elementos visibles)
Frecuencia: Muy común Dificultad: Fácil
4. ¿Qué son los React Hooks y cuáles son los más utilizados?
Respuesta: Los Hooks son funciones que te permiten usar el estado y las características del ciclo de vida en componentes funcionales.
- Hooks comunes:
- useState: Gestiona el estado del componente
- useEffect: Maneja los efectos secundarios (obtención de datos, suscripciones)
- useContext: Accede a los valores del contexto
- useCallback: Memoriza funciones
- useMemo: Memoriza cálculos costosos
- useRef: Referencia elementos DOM o persiste valores
Frecuencia: Muy común Dificultad: Fácil
5. Explica el hook useEffect y su array de dependencias.
Respuesta:
useEffect ejecuta efectos secundarios después del renderizado. El array de dependencias controla cuándo se ejecuta:
- Sin array: Se ejecuta después de cada renderizado
- Array vacío
[]: Se ejecuta una vez después del renderizado inicial - Con dependencias
[dep1, dep2]: Se ejecuta cuando las dependencias cambian
Frecuencia: Muy común Dificultad: Media
6. ¿Qué es el DOM Virtual y cómo lo usa React?
Respuesta: El Virtual DOM es un concepto de React en la web: React mantiene un árbol ligero de la interfaz, lo compara después de cambios de estado y actualiza solo lo necesario. En React Native se aplica la misma idea de reconciliación, pero el resultado final son vistas nativas, no nodos del DOM del navegador.
- Qué decir en una entrevista:
- Los cambios de estado hacen que React vuelva a renderizar los componentes afectados
- React compara el nuevo árbol de componentes con el anterior
- React Native aplica las actualizaciones necesarias a componentes nativos de UI
- Aún optimizas con keys estables, buena ubicación del estado y memoización solo cuando resuelve un problema real de re-render
- Corrección importante: React Native no actualiza HTML ni el DOM del navegador.
Frecuencia: Común Dificultad: Fácil
Componentes y Props (4 preguntas)
7. ¿Cuál es la diferencia entre Props y State?
Respuesta:
- Props:
- Se pasan de padre a hijo
- De solo lectura (inmutables)
- Se utilizan para la configuración del componente
- State:
- Se gestiona dentro del componente
- Mutable (se puede cambiar)
- Se utiliza para datos dinámicos
Frecuencia: Muy común Dificultad: Fácil
8. ¿Qué son los Componentes Funcionales vs los Componentes de Clase?
Respuesta:
- Componentes Funcionales:
- Sintaxis más sencilla
- Utilizan hooks para el estado y el ciclo de vida
- Preferidos en React moderno
- Componentes de Clase:
- Enfoque más antiguo
- Utilizan
this.statey métodos del ciclo de vida - Todavía soportados pero menos comunes
Frecuencia: Común Dificultad: Fácil
9. ¿Cómo se pasan datos del componente hijo al componente padre?
Respuesta: Utiliza funciones de callback pasadas como props.
Frecuencia: Muy común Dificultad: Fácil
10. ¿Qué es la prop key y por qué es importante?
Respuesta:
La prop key ayuda a React a identificar qué elementos han cambiado, se han añadido o se han eliminado en las listas.
- Propósito: Optimizar el rendimiento del renderizado
- Requisitos: Debe ser único entre los hermanos, estable (no usar el índice si la lista puede cambiar)
Frecuencia: Muy común Dificultad: Fácil
Estilos y Diseño (3 preguntas)
11. ¿Cómo se aplican estilos a los componentes en React Native?
Respuesta: React Native utiliza objetos de JavaScript para los estilos, no CSS.
- API StyleSheet: Crea estilos optimizados
- Estilos en línea: Objetos de estilo directos (menos rendimiento)
- Flexbox: Sistema de diseño predeterminado
Frecuencia: Muy común Dificultad: Fácil
12. Explica Flexbox en React Native.
Respuesta: Flexbox es el sistema de diseño principal en React Native.
- Propiedades principales:
- flexDirection:
rowocolumn(predeterminado:column) - justifyContent: Alinea a lo largo del eje principal
- alignItems: Alinea a lo largo del eje transversal
- flex: Tamaño proporcional
- flexDirection:
Frecuencia: Muy común Dificultad: Media
13. ¿Cuál es la diferencia entre margin y padding?
Respuesta:
- Padding: Espacio dentro del componente (entre el contenido y el borde)
- Margin: Espacio fuera del componente (entre el componente y sus vecinos)
Frecuencia: Común Dificultad: Fácil
Navegación (3 preguntas)
14. ¿Qué es React Navigation y cómo se usa?
Respuesta: React Navigation es la biblioteca de navegación más popular para React Native.
- Tipos:
- Stack Navigator: Pila de pantallas (push/pop)
- Tab Navigator: Pestañas inferiores
- Drawer Navigator: Menú lateral
Frecuencia: Muy común Dificultad: Media
15. ¿Cómo se pasan parámetros entre pantallas?
Respuesta:
Usa la función navigate con un segundo parámetro para los datos.
Frecuencia: Muy común Dificultad: Fácil
16. ¿Qué son las opciones de navegación y cómo se personalizan los encabezados?
Respuesta: Las opciones de navegación controlan la apariencia y el comportamiento de la pantalla.
Frecuencia: Común Dificultad: Fácil
Datos y Almacenamiento (4 preguntas)
17. ¿Cómo se obtienen datos de una API en React Native?
Respuesta:
Usa la API fetch o bibliotecas como Axios.
Frecuencia: Muy común Dificultad: Media
18. ¿Qué es AsyncStorage y cómo se usa?
Respuesta: AsyncStorage es un almacén asíncrono de clave-valor para datos pequeños y no sensibles.
- Buenos usos: Tema elegido, flags de onboarding, JSON en caché, preferencias simples
- Evítalo para: Tokens de autenticación, claves API, contraseñas, grandes volúmenes de datos y datos que requieren consultas complejas
- Para datos sensibles: Usa almacenamiento seguro de la plataforma, como iOS Keychain o almacenamiento cifrado en Android mediante una librería mantenida
Frecuencia: Muy común Dificultad: Fácil
19. ¿Cuál es la diferencia entre FlatList y ScrollView?
Respuesta:
- ScrollView:
- Renderiza todos los hijos a la vez
- Bueno para listas pequeñas
- Uso intensivo de memoria para listas grandes
- FlatList:
- Renderiza solo los elementos visibles (carga perezosa)
- Eficiente para listas grandes
- Optimizaciones incorporadas
Frecuencia: Muy común Dificultad: Fácil
20. ¿Cómo se manejan los formularios y la entrada del usuario?
Respuesta: Usa componentes controlados con estado.
Frecuencia: Muy común Dificultad: Media


