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
- Componentes principais do React Native vs DOM da Web
- Estilização com a API StyleSheet e Flexbox
- Navegação com Expo Router
- Acessando APIs do dispositivo: câmera, localização e notificações push