## Questions theoriques frequentes
- **Q: Qu'est-ce que JSX?**
JSX est une syntaxe qui ressemble à du HTML mais qui est en réalité transformé en JavaScript par Babel. Il permet d'écrire directement des éléments React dans le code.
- **Q: Expliquez la différence entre state et props.**
State est mutable, il est défini au sein de la composante et peut changer le rendu. Props sont immutable, ils sont passés à une composante et ne peuvent pas être modifiés par elle.
## Exercices de code classiques
- **Exercice: Créer un bouton qui change sa couleur lorsque vous cliquez dessus.**
```react
import React, { useState } from 'react';
function ColorButton() {
const [color, setColor] = useState('red');
return (
<button style=backgroundColor: color onClick={() => setColor(color === 'red' ? 'blue' : 'red')}>
Change color
</button>
);
}
- Exercice: Créer un composant qui affiche une liste d'utilisateurs.
import React from 'react'; function UserList({ users }) { return ( <ul> {users.map(user => ( <li key={user.id}>{user.name}</li> ))} </ul> ); }
Pieges courants en entretien
- Piege: Utiliser
setStatedans un callback synchrone.this.setState({ count: this.state.count + 1 }, () => { console.log(this.state.count); // Peut ne pas afficher la valeur mise à jour });
Complexite algorithmique
- O(n) : La complexité de rendu en React est généralement linéaire par rapport au nombre d'éléments dans le DOM.
Concepts avances a connaitre
Memoization : Optimisation pour éviter les re-rendus inutiles grâce à la mémoïsation.
Context API : Permet de partager des données entre composantes sans avoir à passer des props manuellement à chaque niveau.
Conseils pratiques
Pratiquer : L'entraînement régulier avec des problèmes et des exercices est essentiel pour maîtriser React.
Se familiariser avec les outils de développement React : Chrome DevTools offrent des fonctionnalités spécifiques pour déboguer et analyser les composantes React.