Questions et réponses d’entretien React Native Junior

Milad Bonakdar
Auteur
Entraînez-vous aux questions React Native junior sur les composants, hooks, navigation, appels API, listes, AsyncStorage et bases mobiles.
Introduction
Dans un entretien junior React Native, on vérifie surtout si vous savez créer des écrans mobiles simples avec React, expliquer le rendu natif, gérer l’état avec les hooks, naviguer entre les écrans, appeler une API et stocker des données locales non sensibles. Une bonne réponse reste pratique : quel outil utiliser, quand l’éviter et quel compromis il crée sur iOS et Android.
Utilisez ce guide pour travailler les questions les plus probables lors d’un premier poste React Native. Concentrez-vous sur les bases de React, les composants clés, la navigation, les formulaires, les listes, les appels API, le stockage et le débogage mobile plutôt que sur des détails de bibliothèque appris par cœur.
Fondamentaux de React (6 Questions)
1. Qu'est-ce que React Native et en quoi diffère-t-il de React ?
Réponse :
- React : Bibliothèque JavaScript pour la construction d'interfaces utilisateur web
- React Native : Framework pour la construction d'applications mobiles natives en utilisant React
- Différences clés :
- React Native effectue le rendu vers des composants natifs (pas le DOM)
- Utilise les API natives au lieu des API web
- Approche de style différente (pas de CSS, utilise StyleSheet)
- Code spécifique à la plateforme pour iOS et Android
Rareté : Très courant Difficulté : Facile
2. Quels sont les composants principaux de React Native ?
Réponse : React Native fournit des composants intégrés qui correspondent aux éléments d'interface utilisateur natifs :
- View : Composant conteneur (comme
divdans le web) - Text : Afficher du texte (tout le texte doit être dans un composant
Text) - Image : Afficher des images
- ScrollView : Conteneur défilable
- TextInput : Champ de saisie de texte
- TouchableOpacity/Pressable : Éléments tactiles
- FlatList : Rendu de liste efficace
- Button : Composant bouton de base
Rareté : Très courant Difficulté : Facile
3. Expliquez la différence entre View et ScrollView.
Réponse :
- View : Conteneur statique. Le contenu au-delà des limites de l'écran n'est pas défilable.
- ScrollView : Conteneur défilable. Rend tous les enfants en même temps (peut être gourmand en mémoire pour les grandes listes).
- Quand utiliser :
- View : Pour les mises en page qui tiennent à l'écran
- ScrollView : Pour de petites quantités de contenu défilable
- FlatList : Pour les grandes listes (ne rend que les éléments visibles)
Rareté : Très courant Difficulté : Facile
4. Que sont les Hooks React et lesquels sont les plus couramment utilisés ?
Réponse : Les Hooks sont des fonctions qui vous permettent d'utiliser l'état et les fonctionnalités du cycle de vie dans les composants fonctionnels.
- Hooks courants :
- useState : Gérer l'état du composant
- useEffect : Gérer les effets secondaires (récupération de données, abonnements)
- useContext : Accéder aux valeurs de contexte
- useCallback : Mémoriser les fonctions
- useMemo : Mémoriser les calculs coûteux
- useRef : Référencer les éléments DOM ou conserver les valeurs
Rareté : Très courant Difficulté : Facile
5. Expliquez le hook useEffect et son tableau de dépendances.
Réponse :
useEffect exécute des effets secondaires après le rendu. Le tableau de dépendances contrôle quand il s'exécute :
- Pas de tableau : S'exécute après chaque rendu
- Tableau vide
[]: S'exécute une fois après le rendu initial - Avec des dépendances
[dep1, dep2]: S'exécute lorsque les dépendances changent
Rareté : Très courant Difficulté : Moyenne
6. Qu'est-ce que le DOM virtuel et comment React l'utilise-t-il ?
Réponse : Le Virtual DOM est un concept de React côté web : React garde un arbre d’interface léger, le compare après les changements d’état et met à jour uniquement ce qui a changé. Dans React Native, la même idée de réconciliation s’applique, mais le résultat final est composé de vues natives, pas de nœuds DOM du navigateur.
- Ce qu’il faut dire en entretien :
- Les changements d’état déclenchent un nouveau rendu des composants concernés
- React compare le nouvel arbre de composants avec le précédent
- React Native applique les mises à jour nécessaires aux composants UI natifs
- On optimise toujours avec des clés stables, un état bien placé et de la mémoïsation seulement quand elle résout un vrai problème de re-render
- Correction importante : React Native ne met pas à jour du HTML ni le DOM du navigateur.
Rareté : Courant Difficulté : Facile
Composants & Props (4 Questions)
7. Quelle est la différence entre Props et State ?
Réponse :
- Props :
- Passées du parent à l'enfant
- En lecture seule (immuables)
- Utilisées pour la configuration du composant
- State :
- Géré au sein du composant
- Mutable (peut être modifié)
- Utilisé pour les données dynamiques
Rareté : Très courant Difficulté : Facile
8. Que sont les composants fonctionnels par rapport aux composants de classe ?
Réponse :
- Composants fonctionnels :
- Syntaxe plus simple
- Utiliser des hooks pour l'état et le cycle de vie
- Préférés dans React moderne
- Composants de classe :
- Approche plus ancienne
- Utiliser
this.stateet les méthodes de cycle de vie - Toujours pris en charge, mais moins courant
Rareté : Courant Difficulté : Facile
9. Comment transmettez-vous des données du composant enfant au composant parent ?
Réponse : Utilisez des fonctions de rappel passées en tant que props.
Rareté : Très courant Difficulté : Facile
10. Qu'est-ce que la prop key et pourquoi est-elle importante ?
Réponse :
La prop key aide React à identifier quels éléments ont été modifiés, ajoutés ou supprimés dans les listes.
- Objectif : Optimiser les performances de rendu
- Exigences : Doit être unique parmi les frères et sœurs, stable (n'utilisez pas l'index si la liste peut changer)
Rareté : Très courant Difficulté : Facile
Style & Mise en page (3 Questions)
11. Comment styliser les composants dans React Native ?
Réponse : React Native utilise des objets JavaScript pour le style, pas du CSS.
- API StyleSheet : Créer des styles optimisés
- Styles en ligne : Objets de style directs (moins performants)
- Flexbox : Système de mise en page par défaut
Rareté : Très courant Difficulté : Facile
12. Expliquez Flexbox dans React Native.
Réponse : Flexbox est le principal système de mise en page dans React Native.
- Propriétés principales :
- flexDirection :
rowoucolumn(par défaut :column) - justifyContent : Aligner le long de l'axe principal
- alignItems : Aligner le long de l'axe transversal
- flex : Dimensionnement proportionnel
- flexDirection :
Rareté : Très courant Difficulté : Moyenne
13. Quelle est la différence entre margin et padding ?
Réponse :
- Padding : Espace à l'intérieur du composant (entre le contenu et la bordure)
- Margin : Espace à l'extérieur du composant (entre le composant et les voisins)
Rareté : Courant Difficulté : Facile
Navigation (3 Questions)
14. Qu'est-ce que React Navigation et comment l'utilisez-vous ?
Réponse : React Navigation est la bibliothèque de navigation la plus populaire pour React Native.
- Types :
- Stack Navigator : Pile d'écrans (push/pop)
- Tab Navigator : Onglets inférieurs
- Drawer Navigator : Menu latéral
Rareté : Très courant Difficulté : Moyenne
15. Comment passez-vous des paramètres entre les écrans ?
Réponse :
Utilisez la fonction navigate avec un deuxième paramètre pour les données.
Rareté : Très courant Difficulté : Facile
16. Quelles sont les options de navigation et comment personnalisez-vous les en-têtes ?
Réponse : Les options de navigation contrôlent l'apparence et le comportement de l'écran.
Rareté : Courant Difficulté : Facile
Données & Stockage (4 Questions)
17. Comment récupérez-vous des données à partir d'une API dans React Native ?
Réponse :
Utilisez l'API fetch ou des bibliothèques comme Axios.
Rareté : Très courant Difficulté : Moyenne
18. Qu'est-ce qu'AsyncStorage et comment l'utilisez-vous ?
Réponse : AsyncStorage est un stockage asynchrone clé-valeur pour de petites données non sensibles.
- Bons cas d’usage : Choix du thème, étapes d’onboarding, JSON en cache, préférences simples
- À éviter pour : Tokens d’authentification, clés API, mots de passe, grands volumes de données et données nécessitant des requêtes complexes
- Pour les données sensibles : Utilisez un stockage sécurisé fourni par la plateforme, comme iOS Keychain ou le stockage chiffré Android via une bibliothèque maintenue
Rareté : Très courant Difficulté : Facile
19. Quelle est la différence entre FlatList et ScrollView ?
Réponse :
- ScrollView :
- Rend tous les enfants en même temps
- Bon pour les petites listes
- Gourmand en mémoire pour les grandes listes
- FlatList :
- Ne rend que les éléments visibles (chargement paresseux)
- Efficace pour les grandes listes
- Optimisations intégrées
Rareté : Très courant Difficulté : Facile
20. Comment gérez-vous les formulaires et la saisie utilisateur ?
Réponse : Utilisez des composants contrôlés avec l'état.
Rareté : Très courant Difficulté : Moyenne


