Domande e risposte colloquio Junior React Native Developer

Milad Bonakdar
Autore
Esercitati con domande da colloquio React Native junior su componenti, hook, navigazione, chiamate API, liste, AsyncStorage e basi mobile.
Introduzione
In un colloquio junior React Native ci si aspetta che tu sappia costruire schermate mobile semplici con React, spiegare il rendering nativo, gestire lo stato con gli hook, navigare tra schermate, leggere dati da API e salvare dati locali non sensibili. Una risposta forte è pratica: cosa useresti, quando lo eviteresti e quale trade-off crea su iOS e Android.
Usa questa guida per allenarti sulle domande più probabili per un primo ruolo React Native. Concentrati su fondamentali React, componenti principali, navigazione, form, liste, chiamate API, storage e debugging mobile invece di memorizzare dettagli di librerie.
Fondamenti di React (6 Domande)
1. Cos'è React Native e come differisce da React?
Risposta:
- React: Libreria JavaScript per la creazione di interfacce utente web
- React Native: Framework per la creazione di app mobile native utilizzando React
- Differenze chiave:
- React Native esegue il rendering su componenti nativi (non DOM)
- Utilizza API native invece di API web
- Approccio di styling diverso (nessun CSS, utilizza StyleSheet)
- Codice specifico per piattaforma per iOS e Android
Rarità: Molto Comune Difficoltà: Facile
2. Quali sono i componenti principali in React Native?
Risposta: React Native fornisce componenti integrati che mappano gli elementi dell'interfaccia utente nativa:
- View: Componente contenitore (come
divnel web) - Text: Visualizza il testo (tutto il testo deve essere nel componente
Text) - Image: Visualizza immagini
- ScrollView: Contenitore scorrevole
- TextInput: Campo di input di testo
- TouchableOpacity/Pressable: Elementi toccabili
- FlatList: Rendering efficiente delle liste
- Button: Componente pulsante di base
Rarità: Molto Comune Difficoltà: Facile
3. Spiega la differenza tra View e ScrollView.
Risposta:
- View: Contenitore statico. Il contenuto oltre i limiti dello schermo non è scorrevole.
- ScrollView: Contenitore scorrevole. Esegue il rendering di tutti i figli contemporaneamente (può richiedere molta memoria per le liste di grandi dimensioni).
- Quando usare:
- View: Per layout che si adattano allo schermo
- ScrollView: Per piccole quantità di contenuto scorrevole
- FlatList: Per liste di grandi dimensioni (esegue il rendering solo degli elementi visibili)
Rarità: Molto Comune Difficoltà: Facile
4. Cosa sono gli Hook di React e quali sono quelli più comunemente usati?
Risposta: Gli Hook sono funzioni che ti consentono di utilizzare le funzionalità di stato e ciclo di vita nei componenti funzionali.
- Hook comuni:
- useState: Gestisci lo stato del componente
- useEffect: Gestisci gli effetti collaterali (recupero dati, sottoscrizioni)
- useContext: Accedi ai valori del contesto
- useCallback: Memorizza le funzioni
- useMemo: Memorizza calcoli costosi
- useRef: Fa riferimento agli elementi DOM o persiste i valori
Rarità: Molto Comune Difficoltà: Facile
5. Spiega l'hook useEffect e il suo array di dipendenze.
Risposta:
useEffect esegue effetti collaterali dopo il rendering. L'array di dipendenze controlla quando viene eseguito:
- Nessun array: Viene eseguito dopo ogni rendering
- Array vuoto
[]: Viene eseguito una volta dopo il rendering iniziale - Con dipendenze
[dep1, dep2]: Viene eseguito quando le dipendenze cambiano
Rarità: Molto Comune Difficoltà: Media
6. Cos'è il DOM virtuale e come lo utilizza React?
Risposta: Il Virtual DOM è un concetto di React per il web: React mantiene un albero UI leggero, lo confronta dopo i cambiamenti di stato e aggiorna solo ciò che è cambiato. In React Native vale la stessa idea di riconciliazione, ma l’output finale sono viste native, non nodi del DOM del browser.
- Cosa dire al colloquio:
- I cambiamenti di stato fanno rieseguire il render dei componenti coinvolti
- React confronta il nuovo albero dei componenti con quello precedente
- React Native applica gli aggiornamenti necessari ai componenti UI nativi
- Si ottimizza comunque con key stabili, stato posizionato bene e memoizzazione solo quando risolve un vero problema di re-render
- Correzione importante: React Native non aggiorna HTML né il DOM del browser.
Rarità: Comune Difficoltà: Facile
Componenti e Props (4 Domande)
7. Qual è la differenza tra Props e State?
Risposta:
- Props:
- Passate dal genitore al figlio
- Sola lettura (immutabili)
- Utilizzate per la configurazione del componente
- State:
- Gestito all'interno del componente
- Mutabile (può essere cambiato)
- Utilizzato per dati dinamici
Rarità: Molto Comune Difficoltà: Facile
8. Cosa sono i Componenti Funzionali rispetto ai Componenti Classe?
Risposta:
- Componenti Funzionali:
- Sintassi più semplice
- Utilizzano gli hook per lo stato e il ciclo di vita
- Preferiti in React moderno
- Componenti Classe:
- Approccio più vecchio
- Utilizzano
this.statee i metodi del ciclo di vita - Ancora supportati ma meno comuni
Rarità: Comune Difficoltà: Facile
9. Come passi i dati dal componente figlio al componente genitore?
Risposta: Utilizza le funzioni di callback passate come props.
Rarità: Molto Comune Difficoltà: Facile
10. Cos'è la prop key e perché è importante?
Risposta:
La prop key aiuta React a identificare quali elementi sono stati modificati, aggiunti o rimossi nelle liste.
- Scopo: Ottimizzare le prestazioni di rendering
- Requisiti: Deve essere univoca tra i fratelli, stabile (non utilizzare l'indice se la lista può cambiare)
Rarità: Molto Comune Difficoltà: Facile
Stili e Layout (3 Domande)
11. Come stili i componenti in React Native?
Risposta: React Native utilizza oggetti JavaScript per lo styling, non CSS.
- API StyleSheet: Crea stili ottimizzati
- Stili Inline: Oggetti di stile diretti (meno performanti)
- Flexbox: Sistema di layout predefinito
Rarità: Molto Comune Difficoltà: Facile
12. Spiega Flexbox in React Native.
Risposta: Flexbox è il sistema di layout principale in React Native.
- Proprietà principali:
- flexDirection:
rowocolumn(predefinito:column) - justifyContent: Allinea lungo l'asse principale
- alignItems: Allinea lungo l'asse trasversale
- flex: Dimensionamento proporzionale
- flexDirection:
Rarità: Molto Comune Difficoltà: Media
13. Qual è la differenza tra margin e padding?
Risposta:
- Padding: Spazio all'interno del componente (tra contenuto e bordo)
- Margin: Spazio all'esterno del componente (tra componente e vicini)
Rarità: Comune Difficoltà: Facile
Navigazione (3 Domande)
14. Cos'è React Navigation e come lo usi?
Risposta: React Navigation è la libreria di navigazione più popolare per React Native.
- Tipi:
- Stack Navigator: Stack di schermate (push/pop)
- Tab Navigator: Tab inferiori
- Drawer Navigator: Menu a cassetto laterale
Rarità: Molto Comune Difficoltà: Media
15. Come passi i parametri tra le schermate?
Risposta:
Utilizza la funzione navigate con un secondo parametro per i dati.
Rarità: Molto Comune Difficoltà: Facile
16. Cosa sono le opzioni di navigazione e come personalizzi gli header?
Risposta: Le opzioni di navigazione controllano l'aspetto e il comportamento dello schermo.
Rarità: Comune Difficoltà: Facile
Dati e Archiviazione (4 Domande)
17. Come recuperi i dati da un'API in React Native?
Risposta:
Utilizza l'API fetch o librerie come Axios.
Rarità: Molto Comune Difficoltà: Media
18. Cos'è AsyncStorage e come lo usi?
Risposta: AsyncStorage è uno storage asincrono chiave-valore per piccoli dati non sensibili.
- Buoni casi d’uso: Tema scelto, flag di onboarding, JSON in cache, preferenze semplici
- Da evitare per: Token di autenticazione, chiavi API, password, grandi dataset e dati che richiedono query complesse
- Per dati sensibili: Usa storage sicuro della piattaforma, come iOS Keychain o storage cifrato Android tramite una libreria mantenuta
Rarità: Molto Comune Difficoltà: Facile
19. Qual è la differenza tra FlatList e ScrollView?
Risposta:
- ScrollView:
- Esegue il rendering di tutti i figli contemporaneamente
- Buono per liste piccole
- Richiede molta memoria per liste grandi
- FlatList:
- Esegue il rendering solo degli elementi visibili (lazy loading)
- Efficiente per liste grandi
- Ottimizzazioni integrate
Rarità: Molto Comune Difficoltà: Facile
20. Come gestisci i form e l'input dell'utente?
Risposta: Utilizza componenti controllati con stato.
Rarità: Molto Comune Difficoltà: Media


