Académique Documents
Professionnel Documents
Culture Documents
Introduction à Réagir
React est une bibliothèque de framework JavaScript efficace, flexible
et open source qui permet aux développeurs de créer des applications
Web simples, rapides et évolutives. Jordan Walke, un ingénieur logiciel qui
travaillait pour Facebook, a créé React. Il a été déployé pour la première
fois sur le fil d'actualité de Facebook en 2011 et sur Instagram en 2012.
Les développeurs issus de l'arrière-plan Javascript peuvent facilement
développer des applications Web à l'aide de React.
React Hooks vous permettra d'utiliser l'état et d'autres fonctionnalités de
React dans lesquelles vous devez écrire une classe. En termes simples,
nous pouvons dire que les Hooks React sont les fonctions qui
connecteront l'état React aux fonctionnalités de cycle de vie des
composants de la fonction. React Hooks fait partie des dernières
fonctionnalités implémentées dans la version React 16.8.
Portée de React : La sélection de la bonne technologie pour le
développement d'applications ou de sites Web devient de plus en plus
difficile. React a été considéré comme le framework Javascript à la
croissance la plus rapide parmi tous. Les outils de Javascript raffermissent
leurs racines lentement et régulièrement sur le marché et la demande de
certification React augmente de façon exponentielle. React est une
victoire évidente pour les développeurs front-end car il a une courbe
d'apprentissage rapide, une abstraction propre et des composants
réutilisables. Actuellement, il n'y a pas de fin en vue pour React car il
continue d'évoluer.
Réussissez votre prochain entretien technique en toute
confiance !
Faites une simulation d'entretien gratuite, obtenez des commentaires et
des recommandations instantanés
Essayez maintenant
bibliothèque.
● Les composants de React sont nombreux et il faudra du temps pour
saisir pleinement les bénéfices de l'ensemble.
● Il peut être difficile pour les programmeurs débutants de comprendre
React.
● Le codage peut devenir complexe car il utilisera les modèles en ligne
et JSX.
Télécharger le PDF
ou supprimés.
● Des clés doivent être données aux éléments du tableau pour fournir
élément.
● Avec les clés, React a une idée de l'élément particulier qui a été
Les composants fonctionnels utilisent des Hooks React pour gérer l'état. Il
utilise le hook useState pour définir l'état d'une variable à l'intérieur du
composant :
function ClassRoom(props){
let [studentsCount,setStudentsCount] = useState(0);
const addStudent = () => {
setStudentsCount(++studentsCount);
}
return(
<div>
<p>Number of students in class room: {studentsCount}</p>
<button onClick={addStudent}>Add Student</button>
</div>
)
}
Étant donné que le Hook useState renvoie un tableau de deux éléments, le
premier élément contient l'état actuel et le second élément est une
fonction utilisée pour mettre à jour l'état.
Dans le code ci-dessus, en utilisant la déstructuration de tableau, nous
avons défini le nom de la variable sur StudentsCount avec une valeur
actuelle de "0" et setStudentsCount est la fonction utilisée pour mettre à
jour l'état.
Pour lire l'état, nous pouvons voir dans le code ci-dessus, le nom de la
variable peut être directement utilisé pour lire l'état actuel de la variable.
Nous ne pouvons pas utiliser React Hooks à l'intérieur des composants de
classe, donc la gestion de l'état est effectuée très différemment dans un
composant de classe :
Prenons le même exemple ci-dessus et convertissons-le en un composant
de classe :
class ClassRoom extends React.Component{
constructor(props){
super(props);
this.state = {studentsCount : 0};
this.addStudent = this.addStudent.bind(this);
}
addStudent(){
this.setState((prevState)=>{
return {studentsCount: prevState.studentsCount++}
});
}
render(){
return(
<div>
<p>Number of students in class room:
{this.state.studentsCount}</p>
<button onClick={this.addStudent}>Add Student</button>
</div>
)
}
}
Dans le code ci-dessus, nous voyons que nous utilisons this.state pour
ajouter la variable StudentsCount et définir la valeur sur "0".
Pour lire l'état, nous utilisons this.state.studentsCount .
Pour mettre à jour l'état, nous devons d'abord lier la fonction addStudent
à this . Alors seulement, nous pourrons utiliser la fonction setState qui
sert à mettre à jour l'état.
8. Qu'est-ce que le DOM virtuel ? Comment réagir utilise-
t-il le DOM virtuel pour rendre l'interface utilisateur ?
Comme indiqué par l'équipe de réaction, le DOM virtuel est un concept
dans lequel une représentation virtuelle du DOM réel est conservée dans
la mémoire et est synchronisée avec le DOM réel par une bibliothèque
telle que ReactDOM.
Pourquoi le DOM virtuel a-t-il été introduit ?
La manipulation DOM fait partie intégrante de toute application Web, mais
la manipulation DOM est assez lente par rapport aux autres opérations en
JavaScript. L'efficacité de l'application est affectée lorsque plusieurs
manipulations du DOM sont effectuées. La plupart des frameworks
JavaScript mettent à jour l'intégralité du DOM même lorsqu'une petite
partie du DOM change.
Par exemple, considérez une liste qui est rendue à l'intérieur du DOM. Si
l'un des éléments de la liste change, la liste entière est à nouveau rendue
au lieu de simplement rendre l'élément qui a été modifié/mis à jour. C'est
ce qu'on appelle une mise à jour inefficace.
Pour résoudre le problème de la mise à jour inefficace, l'équipe de
réaction a introduit le concept de DOM virtuel.
Comment ça marche?
composant.
● Déclenchement des changements d'état.
Tout composant qui utilise l'une des méthodes de cycle de vie suivantes
est considéré comme une limite d'erreur.
À quels endroits une limite d'erreur peut-elle détecter une erreur ?
. Phase de rendu
. À l'intérieur d'une méthode de cycle de vie
. A l'intérieur du constructeur
Sans utiliser les limites d'erreur :
class CounterComponent extends React.Component{
constructor(props){
super(props);
this.state = {
counterValue: 0
}
this.incrementCounter = this.incrementCounter.bind(this);
}
incrementCounter(){
this.setState(prevState => counterValue = prevState+1);
}
render(){
if(this.state.counter === 2){
throw new Error('Crashed');
}
return(
<div>
<button onClick={this.incrementCounter}>Increment Value</button>
<p>Value of counter: {this.state.counterValue}</p>
</div>
)
}
}
Dans le code ci-dessus, lorsque le counterValue est égal à 2, nous
lançons une erreur dans la méthode de rendu.
Lorsque nous n'utilisons pas la limite d'erreur, au lieu de voir une erreur,
nous voyons une page vierge. Étant donné que toute erreur dans la
méthode de rendu entraîne le démontage du composant. Pour afficher
une erreur qui se produit à l'intérieur de la méthode de rendu, nous
utilisons des limites d'erreur.
Avec limites d'erreur : comme mentionné ci-dessus, la limite d'erreur est
un composant utilisant l'une ou les deux méthodes suivantes : static
getDerivedStateFromError et componentDidCatch.
Créons une limite d'erreur pour gérer les erreurs dans la phase de rendu :
class ErrorBoundary extends React.Component {
constructor(props) {
super(props);
this.state = { hasError: false };
}
static getDerivedStateFromError(error) {
return { hasError: true };
}
componentDidCatch(error, errorInfo) {
logErrorToMyService(error, errorInfo);
}
render() {
if (this.state.hasError) {
return <h4>Something went wrong</h4>
}
return this.props.children;
}
}
Dans le code ci-dessus, la fonction getDerivedStateFromError rend
l'interface utilisateur de secours lorsque la méthode de rendu a une
erreur.
componentDidCatch enregistre les informations d'erreur dans un service
de suivi des erreurs.
Maintenant, avec la limite d'erreur, nous pouvons rendre le
CounterComponent de la manière suivante :
<ErrorBoundary>
<CounterComponent/>
</ErrorBoundary>
15. Qu'est-ce que React Hooks ?
React Hooks sont les fonctions intégrées qui permettent aux
développeurs d'utiliser les méthodes d'état et de cycle de vie dans les
composants React. Ce sont de nouvelles fonctionnalités ajoutées
disponibles dans la version 16.8 de React. Chaque cycle de vie d'un
composant comporte 3 phases qui incluent le montage, le démontage et
la mise à jour. Parallèlement à cela, les composants ont des propriétés et
des états. Les Hooks permettront aux développeurs d'utiliser ces
méthodes pour améliorer la réutilisation du code avec une plus grande
flexibilité dans la navigation dans l'arborescence des composants.
En utilisant Hook, toutes les fonctionnalités de React peuvent être
utilisées sans écrire de composants de classe. Par exemple , avant la
version 16.8 de React, il fallait un composant de classe pour gérer l'état
d'un composant. Mais maintenant, en utilisant le Hook useState, nous
pouvons conserver l'état dans un composant fonctionnel.
16. Expliquez React Hooks.
Que sont les Hooks ? Les Hooks sont des fonctions qui nous permettent
de «raccrocher» l'état de React et les fonctionnalités du cycle de vie à
partir d'un composant fonctionnel.
Les React Hooks ne peuvent pas être utilisés dans les composants de
classe. Ils nous permettent d'écrire des composants sans classe.
Pourquoi les Hooks ont-ils été introduits dans React ?
Les Hooks React ont été introduits dans la version 16.8 de
React. Auparavant, les composants fonctionnels étaient appelés
composants sans état. Seuls les composants de classe ont été utilisés
pour la gestion des états et les méthodes de cycle de vie. La nécessité de
changer un composant fonctionnel en composant de classe, chaque fois
que des méthodes de gestion d'état ou de cycle de vie devaient être
utilisées, a conduit au développement de Hooks.
Exemple de hook : useState hook :
Dans les composants fonctionnels, le Hook useState nous permet de
définir un état pour un composant :
function Person(props) {
// We are declaring a state variable called name.
// setName is a function to update/change the value of name
let [name, setName] = useState('');
}
La variable d'état "name" peut être directement utilisée dans le HTML.
17. Quelles sont les règles à suivre lors de l'utilisation de
React Hooks ?
Il y a 2 règles qui doivent être suivies lorsque vous codez avec des Hooks :
● React Hooks doit être appelé uniquement au niveau supérieur. Il n'est
de texte.
● Intégration avec les bibliothèques DOM par des tiers.
● Déclenchement des animations impératives.
non sécurisées :
○ Certaines méthodes de cycle de vie ne sont pas sûres à utiliser
chaîne :
○ Si l'on utilise une ancienne version de React, la référence de
rappel est la méthode recommandée pour gérer les références au
lieu d'utiliser la chaîne refs . StrictMode donne un avertissement
si nous utilisons des références de chaîne pour gérer les
références.
● Avertissement sur l'utilisation de findDOMNode :
○ Auparavant, la méthode findDOMNode() était utilisée pour
headingStyles = {
color: "blue",
fontSize: "48px"
};
render() {
return (
<div>
<h3 style={this.headingStyles}>This is a heading</h3>
<p style={this.paragraphStyles}>This is a paragraph</p>
</div>
);
}
}
● Feuille de style CSS : nous pouvons créer un fichier CSS séparé et
return (
<div>
<button onClick={increment}>Increment Counter</button>
<ChildComponent counterValue={counter} />
</div>
);
}
Comme on peut le voir dans le code ci-dessus, nous rendons le
composant enfant à l'intérieur du composant parent, en fournissant un
accessoire appelé counterValue. La valeur du compteur est transmise du
composant parent au composant enfant.
Nous pouvons utiliser les données transmises par le composant parent de
la manière suivante :
function ChildComponent(props) {
return (
<div>
<p>Value of counter: {props.counterValue}</p>
</div>
);
}
Nous utilisons props.counterValue pour afficher les données transmises
par le composant parent.
Composant enfant vers composant parent (à l'aide de rappels)
Celui-ci est un peu délicat. Nous suivons les étapes ci-dessous :
● Créez un rappel dans le composant parent qui prend les données
lancé avant que quoi que ce soit n'ait été fait. Il aide à configurer l'état
initial et les valeurs initiales.
● getDerivedStateFromProps(): Cette méthode sera appelée juste avant
le rendu des éléments dans le DOM. Cela aide à configurer l'objet
d'état en fonction des accessoires initiaux. La méthode
getDerivedStateFromProps() aura un état comme argument et renvoie
un objet qui a modifié l'état. Ce sera la première méthode à être
appelée lors d'une mise à jour d'un composant.
● render(): Cette méthode affichera ou restituera le code HTML dans le
DOM avec de nouvelles modifications. La méthode render() est une
méthode essentielle et sera toujours appelée tandis que les méthodes
restantes sont facultatives et ne seront appelées que si elles sont
définies.
● componentDidMount(): Cette méthode sera appelée après le rendu du
composant. En utilisant cette méthode, vous pouvez exécuter des
instructions qui nécessitent que le composant soit déjà conservé dans
le DOM.
● shouldComponentUpdate(): La valeur booléenne sera renvoyée par
cette méthode qui précisera si React doit poursuivre le rendu ou
non. La valeur par défaut de cette méthode sera True.
● getSnapshotBeforeUpdate(): Cette méthode fournira un accès aux
accessoires ainsi qu'à l'état avant la mise à jour. Il est possible de
vérifier la valeur précédemment présente avant la mise à jour, même
après la mise à jour.
● componentDidUpdate(): Cette méthode sera appelée après la mise à
jour du composant dans le DOM.
● componentWillUnmount(): Cette méthode sera appelée lorsque la
suppression du composant du DOM est sur le point de se produire.
29. React Hook fonctionne-t-il avec le typage statique ?
Le typage statique fait référence au processus de vérification du code au
moment de la compilation pour s'assurer que toutes les variables seront
typées statiquement. Les React Hooks sont des fonctions conçues pour
s'assurer que tous les attributs doivent être typés statiquement. Pour
appliquer un typage statique plus strict dans notre code, nous pouvons
utiliser l'API React avec des Hooks personnalisés.
30. Expliquez les types de Hooks dans React.
Il existe deux types de Hooks dans React. Elles sont:
1. Hooks intégrés : Les Hooks intégrés sont divisés en 2 parties comme
indiqué ci-dessous :
● Hooks de base :
○ useState(): Ce composant fonctionnel est utilisé pour définir et
récupérer l'état.
○ useEffect(): Il permet d'effectuer les effets secondaires dans les
composants fonctionnels.
○ useContext(): Il est utilisé pour créer des données communes
○
composants plus petites car ils éviteront l'imbrication qui existe dans
les HOC (composants d'ordre supérieur) et rendront des accessoires
qui entraîneront moins de travail à effectuer par React.
33. Les Hooks couvrent-ils toutes les fonctionnalités
fournies par les classes ?
Notre objectif est que Hooks couvre toutes les fonctionnalités des classes
au plus tôt. Il n'y a pas d'équivalent Hook pour les méthodes suivantes qui
ne sont pas encore introduites dans Hooks :
● getSnapshotBeforeUpdate()
● getDerivedStateFromError()
● componentDidCatch()
componentWillMount() {
this.updateDimension()
}
componentDidMount() {
window.addEventListener('resize', this.updateDimension)
}
componentWillUnmount() {
window.removeEventListener('resize', this.updateDimension)
}
updateDimension() {
this.setState({width: window.innerWidth, height: window.innerHeight})
}
render() {
return <span>{this.state.width} x {this.state.height}</span>
}
}
40. Comment transmettre des données entre des
composants frères à l'aide du routeur React ?
La transmission de données entre les composants frères de React est
possible en utilisant React Router à l'aide de history.pushet match.params.
Dans le code ci-dessous, nous avons un composant parent AppDemo.jset
deux composants enfants HomePageet AboutPage. Tout est conservé à
l'intérieur d'un routeur en utilisant React-router Route. C'est aussi avoir un
itinéraire pour savoir /about/{params}où nous allons transmettre les
données.
import React, { Component } from ‘react’;
class AppDemo extends Component {
render() {
return (
<Router>
<div className="AppDemo">
<ul>
<li>
<NavLink to="/" activeStyle={{ color:'blue' }}>Home</NavLink>
</li>
<li>
<NavLink to="/about" activeStyle={{ color:'blue' }}>About
</NavLink>
</li>
</ul>
<Route path="/about/:aboutId" component={AboutPage} />
<Route path="/about" component={AboutPage} />
<Route path="/" component={HomePage} />
</div>
</Router>
);
}
}
export default AppDemo;
La HomePage est un composant fonctionnel avec un bouton. En cliquant
sur le bouton, nous utilisons props.history.push(‘/about/’ + data)pour
naviguer par programme dans /about/data.
export default function HomePage(props) {
const handleClick = (data) => {
props.history.push('/about/' + data);
}
return (
<div>
<button onClick={() => handleClick('DemoButton')}>To About</button>
</div>
)
}
De plus, le composant fonctionnel AboutPage obtiendra les données
transmises par props.match.params.aboutId.
export default function AboutPage(props) {
if(!props.match.params.aboutId) {
return <div>No Data Yet</div>
}
return (
<div>
{`Data obtained from HomePage is ${props.match.params.aboutId}`}
</div>
)
}
Après avoir cliqué sur le bouton dans la page d'accueil, la page
ressemblera à ci-dessous :