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
TextEl 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 componentesTextyViewdesde la bibliotecareact-native.<Text>¡Hola, Mundo!</Text>: Utilizamos el componenteTextpara 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
ViewEl 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 componenteViewpara 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
ImageEl 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
