Académique Documents
Professionnel Documents
Culture Documents
React js
À propos de moi
Khaireddine SARRAJ
Twitter: twitter.com/Acewings_sk
LinkedIn: linkedin.com/in/khaireddinesarraj-3220a1150
WWW: fiverr.com/share/NEwv0o
Qu’est ce que React js?
Qu’est ce que React js?
• Développé par Facebook
• Vous ne pouvez pas utiliser React pour créer une application Web entièrement
fonctionnelle.
Pourquoi React js a-t-il
été développé ?
Pourquoi React js a-t-il été développé ?
• Complexité de la liaison de données bidirectionnelle
• Code déclaratif → code prévisible repose pas sur les abstractions primitives des
modèles, mais utilise toute la puissance de
• Vous n'avez pas vraiment besoin d'étudier JS dans le
JavaScript pour afficher les vues
fichier de vue pour comprendre ce que fait le fichier
• L'utilisation d'objets DOM*1 virtuels permet des mises à jour par lots rapides vers le DOM réel, avec des gains
de productivité importants par rapport aux mises à jour en cascade fréquentes de l'arborescence DOM.
1*The virtual DOM (VDOM) is a programming concept where an ideal, or “virtual”, representation of a UI is kept in memory and synced with the
“real” DOM by a library such as ReactDOM
Les avantages et les inconvénients de
React js?
• Réagir n'est rien d'autre que la vue • Pas de support pour les anciens navigateurs
• Pas de données/modèles
• Construire JSX nécessite un travail supplémentaire
• Pas de promesses
• Mais la plupart du travail est déjà fait pour vous par
• Aucune idée de comment ajouter tout ce qui précède
react-tools et Babel
• Très peu d'infos dans la doc
• Désagréments architecturaux
• Aucun schéma d'annuaire de bonnes pratiques prédéfini
à suivre
Pourquoi devrions nous utiliser
React js ?
Pourquoi devrions nous utiliser React js ?
• Vues faciles à lire et à comprendre
• Liberté totale sur tout ce que vous voulez faire et implémenter - Profitez !!
Fondamentaux
Les termes les plus importants en React?
Composants
Les composants de React
• Les composants sont des blocs de • Les composants React implémentent une méthode
construction réutilisables et render() qui prend les données d'entrée et renvoie ce
autonomes d'une application Web. qu'il faut afficher. Cet exemple utilise une syntaxe de
• Les composants React ne sont type XML appelée JSX. Les données d'entrée
fondamentalement que des transmises au composant sont accessibles par
fonctions idempotentes (la même render() via this.props
entrée produit la même sortie).
• Vous pouvez également utiliser une classe ES6 pour définir un composant→
• La plupart des cas d'utilisation : afficher et coder la logique, la logique avec
état et complexe
• Contrairement aux fonctions normales, les fonctions fléchées n'ont pas leur
propre this. La valeur de this à l'intérieur d'une fonction flèche reste la même
tout au long du cycle de vie de la fonction et est toujours liée à la valeur de
this dans la fonction parent sans flèche la plus proche.
Cycle de vie d’un
composant
Cycle de vie d’un composant
+
Propriétés et état
Propriétés
• Transmis au composant à partir du composant
parent et représente les données du composant
accessible via this.props dans un composant de
classe ou transmis en tant qu'argument
• Accessible via this.state modifié directement. Au lieu de cela, les mises à jour d'état doivent
être effectuées avec une méthode spéciale appelée setState().
• Lorsque les données d'état d'un composant changent, le
balisage rendu sera mis à jour en appelant à nouveau la
méthode render()
• Le problème avec cette syntaxe est qu'un rappel différent est créé à chaque
rendu du bouton. Dans la plupart des cas, c'est bien. Cependant, si ce rappel
est passé en tant que prop aux composants inférieurs, ces composants
peuvent effectuer un nouveau rendu supplémentaire. Nous recommandons
généralement de lier dans le constructeur ou d'utiliser la syntaxe des champs
de classe (fonction flèche Component), pour éviter ce genre de problème de
performances.
Passer des arguments aux gestionnaires
d'événements
• À l'intérieur d'une boucle, il est courant de vouloir passer un paramètre supplémentaire à un gestionnaire
d'événements. Par exemple, si id est l'ID de ligne, l'un des éléments suivants fonctionnera :
• Les deux lignes ci-dessus sont équivalentes et utilisent respectivement les fonctions fléchées et
Function.prototype.bind.
• Dans les deux cas, l'e-argument représentant l'événement React sera transmis comme deuxième argument après l'ID.
Avec une fonction fléchée, nous devons la transmettre explicitement, mais avec bind, tous les autres arguments sont
automatiquement transférés.
Événements synthétiques
• Vos gestionnaires d'événements recevront des instances de SyntheticEvent, un wrapper inter-navigateurs autour de
compris stopPropagation() et preventDefault(), sauf que les événements fonctionnent de la même manière sur tous
les navigateurs.
• Ici, e est un événement synthétique. React définit ces
événements synthétiques conformément aux
spécifications du W3C, vous n'avez donc pas à vous
soucier de la compatibilité entre navigateurs. Les
événements React ne fonctionnent pas exactement de
la même manière que les événements natifs.
• Lorsque vous utilisez React, vous n'avez généralement pas besoin d'appeler addEventListener pour ajouter des écouteurs à un
élément DOM après sa création. Au lieu de cela, fournissez simplement un écouteur lorsque l'élément est initialement rendu.