# Introduction à React
---
## Composants
Exemple de composant :
```jsx []
import React from 'react';
function HelloWorld() {
return
Hello, World!
;
}
export default HelloWorld;
```
---
## Composants
Exemple d'utilisation d'un composant :
```jsx [5-11]
import React from 'react';
import ReactDOM from 'react-dom';
import HelloWorld from './HelloWorld';
function App() {
return (
);
}
ReactDOM.render(, document.getElementById('root'));
```
---
## Props
Les props sont des arguments passés à des composants.
```jsx []
import React from 'react';
function Hello(props) {
return
Hello, {props.name}!
;
}
export default Hello;
```
```jsx []
```
---
## Gestion d'état avec useState
useState permet aux composants de gérer leur état.
```jsx [1-15|4|8|10]
import React, { useState } from 'react';
function Counter() {
const [count, setCount] = useState(0);
return (
Compteur: {count}
);
}
```
---
## Effets avec useEffect
useEffect permet d'effectuer des opérations en réponse à des changements dans le composant.
```jsx []
import React, { useState, useEffect } from 'react';
function Timer() {
const [seconds, setSeconds] = useState(0);
useEffect(() => {
const timer = setInterval(() => {
setSeconds(seconds + 1);
}, 1000);
return () => clearInterval(timer);
}, [seconds]);
return
Temps écoulé: {seconds} secondes
;
}
```
---
## Contexte en React
Le contexte permet de transmettre des données à travers l'arbre des composants sans avoir besoin de passer explicitement des props à chaque niveau.
```jsx [1-15|4|6-12|14]
import React, { createContext, useContext } from 'react';
// Création du contexte
const ThemeContext = createContext('light');
// Composant fournissant le contexte
function App() {
return (
);
}
// Composant consommant le contexte
function Toolbar() {
return (
);
}
// Composant consommant le contexte avec le hook useContext
function ThemedButton() {
const theme = useContext(ThemeContext);
return ;
}
export default App;
```
---
## Gestion d'événements dans un contexte
```jsx []
import React, { createContext, useContext, useState } from 'react';
// Création du contexte
const ThemeContext = createContext();
// Composant fournissant le contexte
function App() {
const [theme, setTheme] = useState('light'); // État du thème
// Fonction pour basculer entre les thèmes
const toggleTheme = () => {
setTheme(prevTheme => (prevTheme === 'light' ? 'dark' : 'light'));
};
// Fonction de gestion d'événement
const handleButtonClick = () => {
console.log('Le bouton a été cliqué!');
};
return (
);
}
// Composant consommant le contexte
function Toolbar() {
return (
);
}
// Composant consommant le contexte avec le hook useContext
function ThemedButton() {
const { theme, toggleTheme, handleButtonClick } = useContext(ThemeContext);
return (
);
}
export default App;
```