0Pricing
React Academy · Lección

Componentes principales de React Native frente al DOM web

Relacione View, Text, Image y ScrollView con sus equivalentes del DOM y comprenda el modelo de bridge.

Componentes principales de React Native frente al DOM web es una lección gratuita de React Academy en CoddyKit. Esta es la lección 1 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.

¿Por qué no hay HTML en React Native?

React Native renderiza componentes nativos de la interfaz de usuario de iOS y Android, no un DOM del navegador. No existen <div>, <p> ni <img>; cada plataforma tiene sus propios elementos nativos.

View — El equivalente de div

View es el contenedor de diseño más básico de React Native. Se corresponde con UIView en iOS y android.view.View en Android. Considérelo como un <div> que no puede contener texto directamente.

import { View, StyleSheet } from 'react-native';

function Card() {
  return (
    <View style={styles.card}>
      {/* children go here */}
    </View>
  );
}

const styles = StyleSheet.create({ card: { padding: 16, borderRadius: 8 } });

Text — El equivalente de p/span

Text es obligatorio para cualquier texto visible. A diferencia de la web, no puede colocar una cadena directamente dentro de un View; debe envolverla en <Text>.

import { View, Text } from 'react-native';

function Greeting() {
  return (
    <View>
      <Text style={{ fontSize: 24, fontWeight: 'bold' }}>Hello!</Text>
      <Text>Welcome to React Native.</Text>
    </View>
  );
}

Image — El equivalente de img

Image renderiza imágenes. Utilice la prop source con un require() para los recursos locales o un objeto { uri: '...' } para las imágenes de red.

import { Image } from 'react-native';

// Local asset:
<Image source={require('./assets/logo.png')} style={{ width: 100, height: 100 }} />

// Network image (must provide dimensions):
<Image source={{ uri: 'https://example.com/photo.jpg' }} style={{ width: 200, height: 150 }} />

ScrollView — El equivalente de overflow:scroll

ScrollView es un contenedor desplazable. A diferencia de la web, debe utilizarlo explícitamente: View no permite desplazamiento. Para listas largas, prefiera FlatList.

import { ScrollView, Text } from 'react-native';

function Article({ paragraphs }) {
  return (
    <ScrollView>
      {paragraphs.map((p, i) => <Text key={i}>{p}</Text>)}
    </ScrollView>
  );
}

FlatList — La lista virtualizada

FlatList renderiza únicamente los elementos visibles y reutiliza los que están fuera de la pantalla, algo esencial para el rendimiento con grandes conjuntos de datos.

import { FlatList, Text, View } from 'react-native';

function UserList({ users }) {
  return (
    <FlatList
      data={users}
      keyExtractor={u => u.id}
      renderItem={({ item }) => <Text>{item.name}</Text>}
    />
  );
}

TouchableOpacity — El equivalente de button

TouchableOpacity (y Pressable en versiones más recientes de RN) añade respuesta táctil a cualquier vista. La prop onPress gestiona las pulsaciones.

import { TouchableOpacity, Text } from 'react-native';

function Button({ onPress, title }) {
  return (
    <TouchableOpacity onPress={onPress} activeOpacity={0.7}>
      <Text>{title}</Text>
    </TouchableOpacity>
  );
}

TextInput — El equivalente de input

TextInput es el campo de entrada controlado. Admite value, onChangeText, placeholder y tipos de teclado.

import { TextInput, useState } from 'react-native';

function SearchBar() {
  const [query, setQuery] = useState('');
  return (
    <TextInput
      value={query}
      onChangeText={setQuery}
      placeholder="Search..."
      keyboardType="default"
    />
  );
}

ActivityIndicator — El indicador de carga

ActivityIndicator es el indicador de carga nativo. En iOS es un spinner circular; en Android, un indicador circular de progreso de Material.

import { ActivityIndicator, View } from 'react-native';

<View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
  <ActivityIndicator size="large" color="#4f46e5" />
</View>

SafeAreaView

SafeAreaView añade automáticamente espacio interior para los notch de los dispositivos, las barras de estado y los indicadores de inicio en iOS y Android.

import { SafeAreaView } from 'react-native-safe-area-context';

export default function App() {
  return (
    <SafeAreaView style={{ flex: 1 }}>
      <MyScreen />
    </SafeAreaView>
  );
}

Modal

Modal renderiza una superposición sobre la aplicación. La prop visible controla si se muestra.

import { Modal, View, Text } from 'react-native';

<Modal visible={showModal} animationType="slide" transparent={true}>
  <View style={styles.overlay}>
    <View style={styles.dialog}>
      <Text>Are you sure?</Text>
    </View>
  </View>
</Modal>

Comprobación rápida

¿Qué componente de React Native debe utilizar para mostrar cualquier texto en pantalla?

Resumen

React Native adapta los conceptos de la web a componentes nativos: View (div), Text (p), Image (img), ScrollView, FlatList (lista virtualizada), TextInput (input) y TouchableOpacity (button). Utilice siempre SafeAreaView para el diseño raíz.

Preguntas frecuentes

¿La lección «Componentes principales de React Native frente al DOM web» es gratis?

Sí — el texto completo de «Componentes principales de React Native frente al DOM web» 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 «Componentes principales de React Native frente al DOM web»?

Relacione View, Text, Image y ScrollView con sus equivalentes del DOM y comprenda el modelo de bridge. 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 1 de 4.

¿Cuánto tiempo toma la lección «Componentes principales de React Native frente al DOM web»?

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. Componentes principales de React Native frente al DOM web
  2. Estilos con la API StyleSheet y Flexbox
  3. Navegación con Expo Router
  4. Acceder a las API del dispositivo: cámara, ubicación y notificaciones push
← Volver a React Academy