import React, { useState } from 'react';
function Compteur() {
const [count, setCount] = useState(0);
return (
<div>
<h2>Compteur: {count}</h2>
<button onClick={() => setCount(count + 1)}>
Incrémenter
</button>
</div>
);
}
mon-app/
├── node_modules/
├── public/
│ ├── index.html
│ └── favicon.ico
├── src/
│ ├── components/
│ │ └── App.js
│ ├── styles/
│ │ └── App.css
│ └── index.js
├── package.json
└── README.md
# Avec Create React App
npx create-react-app mon-app
# Avec Vite
npm create vite@latest mon-app -- --template react
function Salutation({ nom, age }) {
return (
<div>
<h1>Bonjour {nom}!</h1>
<p>Vous avez {age} ans.</p>
</div>
);
}
// Utilisation
<Salutation
nom="Baptiste"
age={25}
/>
function Formulaire() {
const [nom, setNom] = useState('');
const [email, setEmail] = useState('');
const handleSubmit = (e) => {
e.preventDefault();
console.log('Soumis:', { nom, email });
};
return (
<form onSubmit={handleSubmit}>
<input
value={nom}
onChange={e => setNom(e.target.value)}
/>
<input
value={email}
onChange={e => setEmail(e.target.value)}
/>
<button type="submit">
Envoyer
</button>
</form>
);
}
function MonComposant() {
const [data, setData] = useState(null);
useEffect(() => {
// Au montage
fetchData().then(setData);
return () => {
// Au démontage
cleanup();
};
}, []); // Array de dépendances
return data ? <div>{data}</div> : null;
}
function useLocalStorage(key, initial) {
const [value, setValue] = useState(() => {
return JSON.parse(
localStorage.getItem(key) ?? initial
);
});
useEffect(() => {
localStorage.setItem(key, JSON.stringify(value));
}, [key, value]);
return [value, setValue];
}