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.
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:
Exemple d'un composant fonctionnel simple:
<code class="jsx">function Welcome(props) { return <h1>Hello, {props.name}</h1>; }</code>
Composants de classe:
React.Component
.componentDidMount
, componentDidUpdate
et componentWillUnmount
.Exemple d'un composant de classe simple:
<code class="jsx">class Welcome extends React.Component { render() { return <h1>Hello, {this.props.name}</h1>; } }</code>
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.
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>
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>
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>
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>
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>
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>
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>
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!