Académique Documents
Professionnel Documents
Culture Documents
chat.openai.com
Voici un cours complet sur React.js, accompagné d'exemples de code pour vous
aider à comprendre son fonctionnement.
1. Installation de React.js
Pour commencer, vous devez installer React.js et créer
un nouveau projet. Vous pouvez utiliser l'outil de ligne de commande create-
react-app pour configurer rapidement un projet React.js. Voici les étapes à suivre
:
shell
cd mon-projet-react
npm start
2. Composants React
Les composants sont les éléments de base de React.js. Ils
permettent de découper l'interface utilisateur en petits morceaux réutilisables. Voici
un exemple de code pour créer un composant React simple :
1/18
jsx
render() {
Dans cet exemple, nous avons créé un composant de classe MonComposant qui
affiche un titre <h1>.
jsx
4. Propriétés (Props)
Les propriétés (ou "props") sont des données que vous
pouvez passer à un composant React. Elles permettent de personnaliser le
comportement ou l'apparence d'un composant. Voici un exemple d'utilisation des
props :
2/18
jsx
render() {
Dans cet exemple, nous utilisons la prop site pour personnaliser le texte affiché
dans le composant.
5. État (State)
L'état (ou "state") est un concept fondamental de React.js. Il permet
de stocker et de gérer les données qui peuvent changer au fil du temps. Voici un
exemple d'utilisation de l'état dans un composant :
3/18
jsx
constructor(props) {
super(props);
this.state = {
count: 0,
};
incrementCount() {
render() {
return (
<div>
</div>
);
Dans cet exemple, nous utilisons l'état pour stocker et mettre à jour la valeur d'un
compteur. Lorsque le bouton est cliqué, la méthode incrementCount() est
appelée pour mettre à jour l'état.
4/18
jsx
componentDidMount() {
componentDidUpdate() {
componentWillUnmount() {
render() {
5/18
jsx
handleClick() {
render() {
Dans cet exemple, nous utilisons l'événement onClick pour appeler la méthode
handleClick() lorsque le bouton est cliqué.
8. Rendu conditionnel
React.js permet d'effectuer un rendu conditionnel en
fonction de certaines conditions. Vous pouvez utiliser des expressions JavaScript
ou des opérateurs ternaires pour conditionner le rendu des éléments JSX. Voici un
exemple :
6/18
jsx
render() {
return (
<div>
{isLoggedIn ? (
) : (
)}
</div>
);
9. Boucles et listes
Vous pouvez utiliser des boucles ou des méthodes de
manipulation de tableaux pour afficher des listes d'éléments dans React.js. Voici
un exemple d'utilisation de la méthode map() pour afficher une liste de noms :
7/18
jsx
render() {
return (
<ul>
<li key={index}>{name}</li>
))}
</ul>
);
Dans cet exemple, nous utilisons la méthode map() pour itérer sur le tableau
names et afficher chaque nom dans un élément de liste <li>. L'attribut key est
utilisé pour donner une clé unique à chaque élément de la liste.
8/18
jsx
handleButtonClick() {
render() {
return (
);
render() {
return (
<button onClick={this.props.onClick}>Cliquez-moi</button>
);
11. Formulaires
React.js facilite la gestion des formulaires en gardant l'état des
éléments de formulaire dans le state du composant. Vous pouvez utiliser les
événements onChange pour mettre à jour l'état lorsqu'un utilisateur saisit des
données. Voici un exemple :
9/18
jsx
constructor(props) {
super(props);
this.state = {
username: '',
password: ''
};
handleInputChange(event) {
handleSubmit(event) {
event.preventDefault();
render() {
return (
<label>
Nom d'utilisateur:
<input
type="text"
name="username"
value={this.state.username}
/>
</label>
<label>
Mot de passe:
<input
type="password"
name="password"
value={this.state.password}
/>
</label>
<button type="submit">Envoyer</button>
</form>
);
10/18
Dans cet exemple, nous utilisons les événements onChange pour mettre à jour
l'état du composant lorsqu'un utilisateur saisit des données dans les champs de
formulaire. La méthode handleInputChange() est appelée à chaque changement
et met à jour l'état correspondant. La méthode handleSubmit() est appelée
lorsque le formulaire est soumis, vous pouvez y ajouter des actions spécifiques
comme l'envoi des données à un serveur.
jsx
constructor(props) {
super(props);
this.state = {
users: []
};
componentDidMount() {
fetch('https://api.example.com/users')
render() {
return (
<div>
<ul>
{users.map(user => (
<li key={user.id}>{user.name}</li>
))}
</ul>
</div>
);
11/18
Dans cet exemple, nous utilisons la méthode componentDidMount() pour effectuer
une requête API à l'URL spécifiée. Une fois les données récupérées, nous mettons
à jour l'état avec les données et affichons les utilisateurs dans la liste.
13. Routage
Le routage est essentiel pour créer des applications React avec
plusieurs pages. La bibliothèque react-router est souvent utilisée pour gérer le
routage dans React.js. Voici un exemple de configuration de base :
jsx
render() {
return (
<Router>
<nav>
<ul>
<li>
<Link to="/">Accueil</Link>
</li>
<li>
</li>
</ul>
</nav>
<Switch>
<PageAccueil />
</Route>
<Route path="/a-propos">
<PageAPropos />
</Route>
</Switch>
</Router>
);
Dans cet exemple, nous utilisons react-router pour définir les routes et les
composants correspondants. L'élément Link est utilisé pour créer des liens de
navigation, et les composants Route définissent les correspondances entre les
12/18
URL et les composants à afficher.
jsx
// store.js
const initialState = {
count: 0
};
switch (action.type) {
case 'INCREMENT':
case 'DECREMENT':
default:
return state;
13/18
jsx
// App.js
increment() {
decrement() {
render() {
return (
<div>
<h1>Count: {this.props.count}</h1>
</div>
);
function mapStateToProps(state) {
return {
count: state.count
};
Dans cet exemple, nous utilisons Redux pour gérer un état global count. Le
composant App est connecté au store Redux via la fonction connect pour accéder
à l'état global et envoyer des actions pour modifier cet état.
14/18
jsx
// MonComposant.test.js
render(<MonComposant />);
expect(titreElement).toBeInTheDocument();
});
16. Déploiement
Pour déployer une application React.js, vous devez créer une
version de production optimisée de votre application et la déployer sur un serveur.
Voici les étapes générales :
shell
2. Déployez les fichiers du répertoire build sur votre serveur. Vous pouvez
utiliser des services d'hébergement comme Netlify, Vercel, GitHub Pages,
AWS S3, etc., pour héberger votre application React.js.
15/18
Ces ressources vous fourniront des informations détaillées, des exemples avancés
et des bonnes pratiques pour développer des applications React.js de qualité.
Bien sûr ! Poursuivons avec la suite de notre cours complet sur React.js.
jsx
function MonComposant() {
setCount(count + 1);
};
return (
<div>
<h1>Count: {count}</h1>
<button onClick={increment}>Increment</button>
</div>
);
Dans cet exemple, nous utilisons le hook useState pour gérer l'état count. La
fonction useState renvoie une paire de valeurs : la valeur de l'état actuel (count)
et une fonction pour le mettre à jour (setCount). Lorsque le bouton est cliqué, la
fonction increment est appelée et met à jour la valeur de l'état avec une nouvelle
valeur.
16/18
jsx
function MonComposant() {
history.push('/page-suivante');
};
return (
<div>
<h1>Mon Composant</h1>
</div>
);
Dans cet exemple, nous utilisons le hook useHistory pour obtenir l'objet history,
qui contient des méthodes de navigation telles que push pour naviguer vers une
autre page. Lorsque le bouton est cliqué, la fonction handleClick est appelée et
utilise history.push pour naviguer vers la page suivante.
17/18
jsx
background-color: blue;
color: white;
font-size: 16px;
`;
function MonComposant() {
return (
<div>
<h1>Mon Composant</h1>
<StyledButton>Cliquez-moi</StyledButton>
</div>
);
Dans cet exemple, nous utilisons la fonction styled de Styled Components pour
créer un composant de bouton avec des styles personnalisés. Nous pouvons
ensuite utiliser ce composant StyledButton comme n'importe quel autre
composant React.
Ceci conclut notre cours complet sur React.js. J'espère que ces exemples et
explications supplémentaires vous aideront à approfondir vos connaissances de
React.js et à développer des applications web réactives. N'hésitez pas à explorer
davantage la documentation de React.js et de ses bibliothèques associées pour
en savoir plus sur les fonctionnalités avancées et les bonnes pratiques. Bonne
continuation !
18/18