En este tema, aprenderemos sobre tres de los componentes básicos más utilizados en React Native: Text
, View
e Image
. Estos componentes son fundamentales para construir interfaces de usuario en aplicaciones móviles.
- Componente
Text
Text
El componente Text
se utiliza para mostrar texto en la pantalla. Es uno de los componentes más simples y esenciales en React Native.
Ejemplo Básico
import React from 'react'; import { Text, View } from 'react-native'; const App = () => { return ( <View> <Text>¡Hola, Mundo!</Text> </View> ); }; export default App;
Explicación
import { Text, View } from 'react-native';
: Importamos los componentesText
yView
desde la bibliotecareact-native
.<Text>¡Hola, Mundo!</Text>
: Utilizamos el componenteText
para mostrar el texto "¡Hola, Mundo!".
Propiedades Comunes del Componente Text
style
: Permite aplicar estilos al texto.numberOfLines
: Limita el número de líneas que se mostrarán.onPress
: Maneja eventos de toque en el texto.
Ejemplo con Propiedades
import React from 'react'; import { Text, View, StyleSheet } from 'react-native'; const App = () => { return ( <View style={styles.container}> <Text style={styles.text} numberOfLines={1} onPress={() => alert('Texto presionado')}> ¡Hola, Mundo! Este es un texto largo que debería truncarse. </Text> </View> ); }; const styles = StyleSheet.create({ container: { flex: 1, justifyContent: 'center', alignItems: 'center', }, text: { fontSize: 20, color: 'blue', }, }); export default App;
- Componente
View
View
El componente View
es un contenedor básico que se utiliza para agrupar otros componentes y aplicar estilos de diseño.
Ejemplo Básico
import React from 'react'; import { View, Text } from 'react-native'; const App = () => { return ( <View style={{ padding: 20 }}> <Text>Texto dentro de una vista</Text> </View> ); }; export default App;
Explicación
<View style={{ padding: 20 }}>
: Aplicamos un estilo de padding al componenteView
para agregar espacio alrededor del texto.
Propiedades Comunes del Componente View
style
: Permite aplicar estilos al contenedor.onLayout
: Maneja cambios en el diseño del contenedor.accessibilityLabel
: Proporciona una etiqueta accesible para el contenedor.
Ejemplo con Propiedades
import React from 'react'; import { View, Text, StyleSheet } from 'react-native'; const App = () => { return ( <View style={styles.container}> <Text>Texto dentro de una vista estilizada</Text> </View> ); }; const styles = StyleSheet.create({ container: { flex: 1, justifyContent: 'center', alignItems: 'center', backgroundColor: '#f0f0f0', }, }); export default App;
- Componente
Image
Image
El componente Image
se utiliza para mostrar imágenes en la aplicación.
Ejemplo Básico
import React from 'react'; import { View, Image } from 'react-native'; const App = () => { return ( <View> <Image source={{ uri: 'https://reactnative.dev/img/tiny_logo.png' }} style={{ width: 50, height: 50 }} /> </View> ); }; export default App;
Explicación
source={{ uri: 'https://reactnative.dev/img/tiny_logo.png' }}
: Especificamos la fuente de la imagen utilizando una URL.style={{ width: 50, height: 50 }}
: Aplicamos un estilo para definir el tamaño de la imagen.
Propiedades Comunes del Componente Image
source
: Define la fuente de la imagen.style
: Permite aplicar estilos a la imagen.resizeMode
: Define cómo se ajusta la imagen dentro de su contenedor (cover
,contain
,stretch
,repeat
,center
).
Ejemplo con Propiedades
import React from 'react'; import { View, Image, StyleSheet } from 'react-native'; const App = () => { return ( <View style={styles.container}> <Image source={{ uri: 'https://reactnative.dev/img/tiny_logo.png' }} style={styles.image} resizeMode="contain" /> </View> ); }; const styles = StyleSheet.create({ container: { flex: 1, justifyContent: 'center', alignItems: 'center', }, image: { width: 100, height: 100, }, }); export default App;
Ejercicio Práctico
Descripción
Crea una aplicación que muestre un texto, una vista con un fondo de color y una imagen. El texto debe ser presionable y mostrar una alerta cuando se presione.
Solución
import React from 'react'; import { View, Text, Image, StyleSheet, Alert } from 'react-native'; const App = () => { return ( <View style={styles.container}> <Text style={styles.text} onPress={() => Alert.alert('Texto presionado')}> Presiona este texto </Text> <View style={styles.box}> <Text>Texto dentro de una vista con fondo de color</Text> </View> <Image source={{ uri: 'https://reactnative.dev/img/tiny_logo.png' }} style={styles.image} resizeMode="cover" /> </View> ); }; const styles = StyleSheet.create({ container: { flex: 1, justifyContent: 'center', alignItems: 'center', }, text: { fontSize: 18, color: 'blue', marginBottom: 20, }, box: { backgroundColor: '#add8e6', padding: 20, marginBottom: 20, }, image: { width: 100, height: 100, }, }); export default App;
Explicación
Alert.alert('Texto presionado')
: Muestra una alerta cuando se presiona el texto.style={styles.box}
: Aplica un fondo de color y padding a la vista.resizeMode="cover"
: Ajusta la imagen para cubrir el área del contenedor.
Conclusión
En esta lección, hemos aprendido sobre los componentes Text
, View
e Image
en React Native. Estos componentes son fundamentales para construir interfaces de usuario y se utilizan en casi todas las aplicaciones. Asegúrate de practicar con estos componentes para familiarizarte con sus propiedades y usos. En la próxima lección, exploraremos cómo estilizar componentes utilizando Flexbox.
Curso de React Native
Módulo 1: Introducción a React Native
- ¿Qué es React Native?
- Configuración del Entorno de Desarrollo
- Aplicación Hola Mundo
- Entendiendo JSX
- Componentes y Props
Módulo 2: Componentes Básicos y Estilizado
- Visión General de Componentes Básicos
- Texto, Vista e Imagen
- Estilizado con Flexbox
- Manejo de Entrada del Usuario
- ScrollView y ListView
Módulo 3: Estado y Ciclo de Vida
- Métodos de Estado y Ciclo de Vida
- Manejo de Eventos
- Renderizado Condicional
- Listas y Claves
- Formularios y Componentes Controlados
Módulo 4: Navegación
- Introducción a React Navigation
- Navegador de Pila
- Navegador de Pestañas
- Navegador de Cajón
- Pasando Parámetros a Rutas
Módulo 5: Redes y Datos
- Obteniendo Datos con Fetch API
- Usando Axios para Solicitudes HTTP
- Manejo de Errores de Red
- AsyncStorage para Datos Locales
- Integración con APIs REST
Módulo 6: Conceptos Avanzados
Módulo 7: Despliegue y Publicación
- Construyendo para iOS
- Construyendo para Android
- Publicando en App Store
- Publicando en Google Play
- Integración y Entrega Continua