0Pricing
React Academy · Aula

Componentes principais do React Native vs DOM da Web

Relacione View/Text/Image/ScrollView aos componentes DOM correspondentes e entenda o modelo de ponte.

Componentes principais do React Native vs DOM da Web é uma aula grátis de React Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de React Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de React Academy inclui 4 aulas no total.

Por que não há HTML no React Native

O React Native renderiza componentes nativos de interface do iOS e do Android, não um DOM do navegador. Não há <div>, <p> ou <img> — cada plataforma tem suas próprias primitivas nativas.

View — o equivalente a div

View é o contêiner de layout mais básico do React Native. Ele corresponde a UIView no iOS e a android.view.View no Android. Pense nele como uma <div> que não pode conter texto diretamente.

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 — o equivalente a p/span

Text é necessário para qualquer texto visível. Diferentemente da web, não é possível inserir uma string diretamente em uma View — ela deve ser envolvida em <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 — o equivalente a img

Image renderiza imagens. Use a propriedade source com um require() para recursos locais ou um objeto { uri: '...' } para imagens da rede.

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 — o equivalente a overflow:scroll

ScrollView é um contêiner com rolagem. Diferentemente da web, é necessário usá-lo explicitamente — View não rola. Para listas longas, prefira FlatList.

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

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

FlatList — a lista virtualizada

FlatList renderiza apenas os itens visíveis, reutilizando os que estão fora da tela — algo essencial para o desempenho com grandes conjuntos de dados.

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 — o equivalente a button

TouchableOpacity (e Pressable nas versões mais recentes do RN) adiciona resposta tátil a qualquer visualização. A propriedade onPress gerencia os toques.

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

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

TextInput — o equivalente a input

TextInput é o campo de entrada controlado. Ele aceita value, onChangeText, placeholder e 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 — o indicador de carregamento

ActivityIndicator é o indicador nativo de carregamento. No iOS, ele é circular; no Android, é um indicador circular de progresso do Material.

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

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

SafeAreaView

SafeAreaView adiciona automaticamente preenchimento para entalhes do dispositivo, barras de status e indicadores de início no iOS e no Android.

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

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

Modal

Modal renderiza uma sobreposição sobre a aplicação. A propriedade visible controla se ela é exibida.

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>

Verificação rápida

Qual componente do React Native deve ser usado para exibir qualquer texto na tela?

Resumo

O React Native mapeia conceitos da web para componentes nativos: View (div), Text (p), Image (img), ScrollView, FlatList (lista virtualizada), TextInput (entrada) e TouchableOpacity (botão). Sempre use SafeAreaView para o layout raiz.

Perguntas Frequentes

A aula “Componentes principais do React Native vs DOM da Web” é grátis?

Sim — o texto completo de “Componentes principais do React Native vs DOM da Web” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de React Academy, atualize para CoddyKit PRO. O curso de React Academy inclui 4 aulas no total.

O que vou aprender em “Componentes principais do React Native vs DOM da Web”?

Relacione View/Text/Image/ScrollView aos componentes DOM correspondentes e entenda o modelo de ponte. Você pratica React Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar React Academy?

Nenhuma experiência prévia é necessária. React Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.

Quanto tempo leva a aula “Componentes principais do React Native vs DOM da Web”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de React Academy?

Sim. Cada aula de React Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Componentes principais do React Native vs DOM da Web
  2. Estilização com a API StyleSheet e Flexbox
  3. Navegação com Expo Router
  4. Acessando APIs do dispositivo: câmera, localização e notificações push
← Voltar para React Academy