Maison > interface Web > Questions et réponses frontales > Que sont les composants dans React?

Que sont les composants dans React?

Emily Anne Brown
Libérer: 2025-03-19 13:31:31
original
220 Les gens l'ont consulté

Que sont les composants dans React?

Les composants sont les éléments constitutifs fondamentaux de toute application React. Ce sont des pièces de code réutilisables qui représentent une partie de l'interface utilisateur. Chaque composant peut être considéré comme un module autonome qui gère son propre état et rend sa propre interface utilisateur. Les composants de React peuvent être fonctionnels ou basés sur la classe, bien qu'avec l'avènement des crochets, les composants fonctionnels soient plus couramment utilisés en raison de leur simplicité et de leur lisibilité.

Les composants peuvent recevoir des données via des accessoires, qui sont des entrées à un composant qui peut affecter la façon dont il est rendu. Ils peuvent également maintenir leur propre état interne, leur permettant de répondre aux interactions des utilisateurs et de mettre à jour l'interface utilisateur en conséquence. Les composants React peuvent être composés ensemble pour construire des UIS complexes et interactives, ce qui en fait un outil puissant pour créer des applications Web modernes.

Quelle est la différence entre les composants fonctionnels et la classe dans React?

Les composants fonctionnels et de classe dans REACT ont le même but de encapsulant et de rendu des éléments d'interface utilisateur, mais ils diffèrent en syntaxe et en capacités, en particulier dans les versions antérieures de React.

Composants fonctionnels:

  • À l'origine, les composants fonctionnels étaient plus simples et ne pouvaient accepter que les accessoires et le retour JSX.
  • Ils n'avaient pas leurs propres méthodes d'État ou de cycle de vie.
  • Avec l'introduction de crochets dans React 16.8, les composants fonctionnels peuvent désormais utiliser des fonctionnalités d'état et de cycle de vie, ce qui les rend aussi puissants que les composants de classe mais avec moins de code passerelle.
  • Les composants fonctionnels sont définis à l'aide de fonctions JavaScript régulières ou de fonctions de flèche.

Exemple d'un composant fonctionnel simple:

 <code class="jsx">function Welcome(props) { return <h1>Hello, {props.name}</h1>; }</code>
Copier après la connexion

Composants de classe:

  • Les composants de classe sont des classes ES6 qui s'étendent à partir de React.Component .
  • Ils ont une syntaxe plus complexe qui comprend un constructeur pour initialiser l'état et les méthodes de liaison.
  • Les composants de classe peuvent utiliser des méthodes de cycle de vie comme componentDidMount , componentDidUpdate et componentWillUnmount .
  • Avant les crochets, les composants de la classe étaient le seul moyen de gérer les effets de l'état et de la partie dans les composants.

Exemple d'un composant de classe simple:

 <code class="jsx">class Welcome extends React.Component { render() { return <h1>Hello, {this.props.name}</h1>; } }</code>
Copier après la connexion

Dans le développement de la réaction moderne, les composants fonctionnels avec des crochets sont préférés en raison de leur simplicité et de la capacité de réutiliser facilement la logique avec état entre les composants.

Comment passer les données entre les composants de React?

Le passage des données entre les composants de React peut être obtenu de plusieurs manières, en fonction de la relation entre les composants (composants parent-enfant, parental ou sœur).

1. Parent à l'enfant: accessoires
La méthode la plus courante pour passer les données d'un parent à un composant enfant est d'utiliser des accessoires. Les accessoires sont des données en lecture seule qui sont passées d'un composant parent à ses composants enfants.

Exemple:

 <code class="jsx">function Parent() { const name = 'John'; return <child name="{name}"></child>; } function Child(props) { return <p>Hello, {props.name}!</p>; }</code>
Copier après la connexion

2. Enfant à parent: rappels
Pour transmettre des données d'un enfant à un composant parent, vous pouvez passer une fonction de rappel comme un accessoire au composant enfant. Le composant enfant peut ensuite appeler cette fonction, passant toutes les données nécessaires au parent.

Exemple:

 <code class="jsx">function Parent() { const handleNameChange = (newName) => { console.log(newName); }; return <child onnamechange="{handleNameChange}"></child>; } function Child(props) { const name = 'Jane'; return <button onclick="{()"> props.onNameChange(name)}>Send Name</button>; }</code>
Copier après la connexion

3. Entre les frères et sœurs: levage de l'état
Si vous avez besoin de partager des données entre les composants frères et sœurs, vous pouvez soulever l'état vers leur composant parent commun le plus proche. Le composant parent peut ensuite gérer l'état et le transmettre sous forme d'accessoires aux composants de l'enfant.

Exemple:

 <code class="jsx">function Parent() { const [name, setName] = useState(''); const handleNameChange = (newName) => { setName(newName); }; return ( <div> <child1 name="{name}" onnamechange="{handleNameChange}"></child1> <child2 name="{name}"></child2> </div> ); } function Child1(props) { const name = 'John'; return <button onclick="{()"> props.onNameChange(name)}>Send Name</button>; } function Child2(props) { return <p>Hello, {props.name}!</p>; }</code>
Copier après la connexion

Quelles sont les meilleures pratiques pour gérer l'état dans les composants React?

La gestion de l'état efficace est cruciale pour construire des applications de réaction robustes et efficaces. Voici quelques meilleures pratiques pour la gestion de l'État dans React Composants:

1. Utilisez le crochet useState pour l'état local:
Pour les composants fonctionnels, utilisez le crochet useState pour gérer l'état local. Cette approche maintient vos composants simples et axés sur leur logique d'interface utilisateur.

Exemple:

 <code class="jsx">function Counter() { const [count, setCount] = useState(0); return ( <div> <p>You clicked {count} times</p> <button onclick="{()"> setCount(count 1)}>Click me</button> </div> ); }</code>
Copier après la connexion

2. Soulevez l'état en cas de besoin:
Si plusieurs composants doivent partager le même état, soulevez l'état vers leur parent commun le plus proche. Cela permet d'éviter le forage des accessoires et maintient votre nettoyage de hiérarchie de composants.

3. Utilisez l'API de contexte pour l'état mondial:
Pour l'état qui doit être accessible par de nombreux composants tout au long de votre application, envisagez d'utiliser l'API de contexte. Il fournit un moyen de passer des données via l'arborescence des composants sans avoir à transmettre des accessoires manuellement à tous les niveaux.

Exemple:

 <code class="jsx">const ThemeContext = React.createContext('light'); function App() { return ( <themecontext.provider value="dark"> <toolbar></toolbar> </themecontext.provider> ); } function Toolbar() { return ( <div> <themedbutton></themedbutton> </div> ); } function ThemedButton() { const theme = useContext(ThemeContext); return <button style="{{" background: theme="==" :>I am styled by theme context!</button>; }</code>
Copier après la connexion

4. Utilisez Redux ou d'autres bibliothèques de gestion d'État pour des applications complexes:
Pour des applications plus grandes avec des besoins complexes de gestion de l'État, envisagez d'utiliser une bibliothèque comme Redux. Redux fournit un magasin centralisé pour l'état de votre application et un ensemble de règles prévisibles pour mettre à jour cet état.

5. Gardez les mises à jour de l'État immuables:
Lors de la mise à jour de l'état, renvoyez toujours un nouvel objet d'état au lieu de muter celui existant. Cela aide à réagir efficacement les composants et améliore les performances.

Exemple:

 <code class="jsx">// Incorrect: Mutating state const [user, setUser] = useState({ name: 'John', age: 30 }); user.age = 31; // Don't do this! // Correct: Returning a new state object setUser(prevUser => ({ ...prevUser, age: 31 }));</code>
Copier après la connexion

6. Utilisez la mémorisation pour optimiser les performances:
Utilisez les crochets useMemo et useCallback pour mémoriser des calculs et des fonctions de rappel coûteux, en empêchant les redirecteurs inutiles des composants.

Exemple:

 <code class="jsx">const memoizedValue = useMemo(() => computeExpensiveValue(a, b), [a, b]); const memoizedCallback = useCallback(() => doSomething(a, b), [a, b]);</code>
Copier après la connexion

En suivant ces meilleures pratiques, vous pouvez gérer efficacement l'état de vos composants React, résultant en une application plus maintenable et performante.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal