0Pricing
React Academy · Lezione

Componenti core di React Native e DOM web a confronto

Mappi View/Text/Image/ScrollView ai rispettivi elementi DOM e comprenda il modello bridge.

Componenti core di React Native e DOM web a confronto è una lezione React Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento React Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso React Academy include 4 lezioni in totale.

Perché React Native non usa HTML?

React Native esegue il rendering nei componenti nativi dell'interfaccia utente di iOS e Android, non nel DOM di un browser. Non esistono <div>, <p> o <img>: ogni piattaforma ha i propri elementi primitivi nativi.

View: l'equivalente di div

View è il contenitore di layout più semplice in React Native. Corrisponde a UIView su iOS e a android.view.View su Android. Pensatelo come un <div> che non può contenere direttamente del testo.

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: l'equivalente di p/span

Text è necessario per qualsiasi testo visibile. A differenza del web, non potete inserire direttamente una stringa in un View: deve essere racchiusa in <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: l'equivalente di img

Image esegue il rendering delle immagini. Utilizzate la prop source con un require() per gli asset locali oppure un oggetto { uri: '...' } per le immagini di rete.

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: l'equivalente di overflow:scroll

ScrollView è un contenitore a scorrimento. A differenza del web, dovete utilizzarlo esplicitamente: View non scorre. Per gli elenchi lunghi, preferite FlatList.

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

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

FlatList: l'elenco virtualizzato

FlatList esegue il rendering solo degli elementi visibili e ricicla quelli fuori schermo: è essenziale per le prestazioni con grandi quantità di dati.

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: l'equivalente di button

TouchableOpacity (e Pressable nelle versioni più recenti di RN) aggiunge il feedback tattile a qualsiasi view. La prop onPress gestisce i tocchi.

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

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

TextInput: l'equivalente di input

TextInput è il campo di input controllato. Supporta value, onChangeText, placeholder e i tipi di tastiera.

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

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

ActivityIndicator: l'indicatore di caricamento

ActivityIndicator è l'indicatore di caricamento nativo. Su iOS è un indicatore circolare; su Android è un indicatore circolare di avanzamento in stile Material.

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

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

SafeAreaView

SafeAreaView aggiunge automaticamente spazio interno per notch, barre di stato e indicatori Home su iOS e Android.

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

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

Modal

Modal visualizza una sovrapposizione sopra l'app. La prop visible controlla se viene visualizzata.

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>

Controllo rapido

Quale componente React Native dovete utilizzare per visualizzare qualsiasi testo sullo schermo?

Riepilogo

React Native mappa i concetti del web su componenti nativi: View (div), Text (p), Image (img), ScrollView, FlatList (elenco virtualizzato), TextInput (input) e TouchableOpacity (button). Utilizzate sempre SafeAreaView per il layout radice.

Domande Frequenti

La lezione «Componenti core di React Native e DOM web a confronto» è gratuita?

Sì — il testo completo di «Componenti core di React Native e DOM web a confronto» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso React Academy, passa a CoddyKit PRO. Il corso React Academy include 4 lezioni in totale.

Cosa imparerò in «Componenti core di React Native e DOM web a confronto»?

Mappi View/Text/Image/ScrollView ai rispettivi elementi DOM e comprenda il modello bridge. Eserciti React Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare React Academy?

Non è richiesta alcuna esperienza precedente. React Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Componenti core di React Native e DOM web a confronto»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione React Academy?

Sì. Ogni lezione React Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Componenti core di React Native e DOM web a confronto
  2. Styling con API StyleSheet e Flexbox
  3. Navigazione con Expo Router
  4. Accesso alle API del dispositivo: fotocamera, posizione e notifiche push
← Torna a React Academy