Table des matières
1. Couplage élevé et faible cohésion.
2. Composants d'affichage et composants de conteneur
3. Flux de données unidirectionnel de haut en bas
4. Composants contrôlés et composants non contrôlés
Composant contrôlé :
Composant non contrôlé :
5. Utiliser des composants d'ordre supérieur (HOC)
6. Processus standard d'ajout, de suppression, de modification et de vérification
Maison interface Web js tutoriel Concevez raisonnablement les composants React pour rendre le code plus beau ! !

Concevez raisonnablement les composants React pour rendre le code plus beau ! !

Feb 13, 2021 am 09:10 AM

Concevez raisonnablement les composants React pour rendre le code plus beau ! !

Le but de React est de composant la page frontale et d'utiliser le modèle de pensée de la machine à états pour contrôler les composants. Il existe certainement une relation entre les composants. Grâce à une conception raisonnable des composants et à la définition de limites appropriées pour chaque composant, nous pouvons réduire efficacement l'impact sur les autres composants lorsque nous reconstruisons la page. En même temps, cela peut également rendre notre code plus beau.

1. Couplage élevé et faible cohésion.

Couplage élevé : placez les parties fonctionnelles étroitement liées dans un composant conteneur et exposez index.js au monde extérieur. La structure des répertoires est la suivante :

├── components
│   └── App
└── index.js
Copier après la connexion

Faible cohésion : lorsque ce composant est. directement sur la page d'appel Une fois supprimé, aucun impact ne sera déclenché ; les rendus répétés inutiles sont réduits ;

2. Composants d'affichage et composants de conteneur

展示组件 容器组件
关注事物的展示 关注事物如何工作
可能包含展示和容器组件,并且一般会有DOM标签和css样式 可能包含展示和容器组件,并且不会有DOM标签和css样式
常常允许通过this.props.children传递 提供数据和行为给容器组件或者展示组件
对第三方没有任何依赖,比如store 或者 flux action 调用flux action 并且提供他们的回调给展示组件
不要指定数据如何加载和变化 作为数据源,通常采用较高阶的组件,而不是自己写,比如React Redux的connect(), Relay的createContainer(), Flux Utils的Container.create()
很少有自己的状态,即使有,也是自己的UI状态

L'accent ici est this.props.children. Grâce à this.props.children, nous pouvons facilement rendre nos composants à faible cohésion. Dans le développement réel, nous rencontrons souvent des composants d'affichage écrits avec des composants purs et des composants conteneurs qui continuent à traiter les données. Ici, utilisez simplement this.props.children pour couvrir ces composants de conteneur. Ensuite, le composant conteneur piégé peut continuer à créer un nouveau dossier selon les règles ci-dessus et exposer index.js.
Le plus grand avantage de cette façon d'écrire est que vous pouvez trouver rapidement où se trouve le composant que vous avez écrit, ce qu'il fait et ce qu'il affecte.

3. Flux de données unidirectionnel de haut en bas

Lorsque nous devons concevoir pour répondre aux conditions ci-dessus, utiliser un flux de données unidirectionnel de haut en bas nous permettra d'utiliser quelque chose like Lorsque vous utilisez un outil de gestion d'état comme redux, la portée de l'influence est plus contrôlable et ShouldComponentUpdate est utilisé pour réduire le rendu inutile. (Mais c'est vraiment gênant d'écrire de cette façon, mais React utilise la nouvelle fonction de cycle de vie getDerivedStateFromProps à partir de la v16.3 pour forcer les développeurs à optimiser cette étape)

4. Composants contrôlés et composants non contrôlés

Il existe de nombreux composants Web qui peuvent être modifiés par l'interaction de l'utilisateur, tels que : , qui maintient la valeur dans son propre état ne peut pas être modifié de l'extérieur
2. .Un composant qui définit une valeur via des accessoires ne peut être mis à jour que via un contrôle externe.

Composant contrôlé :

Un contrôlé doit avoir un attribut de valeur. Le rendu d'un composant contrôlé affiche la valeur de l'attribut value.
Un composant contrôlé ne maintient pas son propre état interne et le rendu du composant dépend uniquement des accessoires. C'est-à-dire que si nous avons un composant qui définit la valeur via des accessoires, quelle que soit la façon dont vous saisissez, il affichera uniquement props.value. En d'autres termes, votre composant est en lecture seule.
Lorsque vous traitez un composant contrôlé, vous devez toujours transmettre un attribut de valeur et enregistrer une fonction de rappel onChange pour rendre le composant variable.

Composant non contrôlé :

Un sans attribut de valeur est un composant non contrôlé. Grâce aux éléments rendus, toute entrée de l'utilisateur est immédiatement reflétée. L' non contrôlée ne peut notifier la couche supérieure que des modifications saisies par l'utilisateur via la fonction OnChange.
#### Composant hybride :
Conservez les valeurs de props.value et state.value en même temps. props.value a une priorité d'affichage plus élevée et state.value représente la valeur réelle du composant.

5. Utiliser des composants d'ordre supérieur (HOC)

Définition simple : une fonction qui reçoit un composant de réaction en tant que paramètre et renvoie un autre composant.
Que peut-on faire : réutilisation du code, modularisation du code, ajout, suppression et modification d'accessoires
Cas d'utilisation : par exemple, si l'entreprise souhaite soudainement enterrer différents points de clic dans le code front-end, elle peut utiliser une couche de package hoc sans changer les parties d'origine. Le code a été raisonnablement modifié en même temps.

6. Processus standard d'ajout, de suppression, de modification et de vérification

Ajouter : remplir les données, vérifier les données, insérer des données et réinterroger la liste de données.
Supprimer : confirmez la suppression et interrogez à nouveau la liste de données.
Vérifier : interroger la liste des données, afficher en pagination
Modifier : remplir les données, vérifier les données, modifier les données, réinterroger la liste des données

En fait, ce n'est pas nécessaire de composer prématurément des composants lors de la conception de composants. Nous pouvons d'abord écrire rapidement une version, puis la diviser en fonction de la conception réelle pour faire face aux changements rapides des exigences dès les premières étapes du projet. Ensuite, nous modifions notre projet petit à petit en fonction du modèle de conception. Tant que le modèle de conception est raisonnablement divisé, c'est en fait une chose très fluide et naturelle.

Pour plus de connaissances sur la programmation, veuillez visiter : Vidéo de programmation ! !

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Que dois-je faire si je rencontre l'impression de code brouillé pour les reçus en papier thermique frontal? Que dois-je faire si je rencontre l'impression de code brouillé pour les reçus en papier thermique frontal? Apr 04, 2025 pm 02:42 PM

Des questions et des solutions fréquemment posées pour l'impression de billets thermiques frontaux pour le développement frontal, l'impression de billets est une exigence commune. Cependant, de nombreux développeurs mettent en œuvre ...

Qui est payé plus de python ou de javascript? Qui est payé plus de python ou de javascript? Apr 04, 2025 am 12:09 AM

Il n'y a pas de salaire absolu pour les développeurs Python et JavaScript, selon les compétences et les besoins de l'industrie. 1. Python peut être davantage payé en science des données et en apprentissage automatique. 2. JavaScript a une grande demande dans le développement frontal et complet, et son salaire est également considérable. 3. Les facteurs d'influence comprennent l'expérience, la localisation géographique, la taille de l'entreprise et les compétences spécifiques.

Démystifier javascript: ce qu'il fait et pourquoi c'est important Démystifier javascript: ce qu'il fait et pourquoi c'est important Apr 09, 2025 am 12:07 AM

JavaScript est la pierre angulaire du développement Web moderne, et ses principales fonctions incluent la programmation axée sur les événements, la génération de contenu dynamique et la programmation asynchrone. 1) La programmation axée sur les événements permet aux pages Web de changer dynamiquement en fonction des opérations utilisateur. 2) La génération de contenu dynamique permet d'ajuster le contenu de la page en fonction des conditions. 3) La programmation asynchrone garantit que l'interface utilisateur n'est pas bloquée. JavaScript est largement utilisé dans l'interaction Web, les applications à une page et le développement côté serveur, améliorant considérablement la flexibilité de l'expérience utilisateur et du développement multiplateforme.

Comment fusionner les éléments du tableau avec le même ID dans un seul objet en utilisant JavaScript? Comment fusionner les éléments du tableau avec le même ID dans un seul objet en utilisant JavaScript? Apr 04, 2025 pm 05:09 PM

Comment fusionner les éléments du tableau avec le même ID dans un seul objet en JavaScript? Lors du traitement des données, nous rencontrons souvent la nécessité d'avoir le même ID ...

Comment réaliser des effets de défilement de parallaxe et d'animation des éléments, comme le site officiel de Shiseido?
ou:
Comment pouvons-nous réaliser l'effet d'animation accompagné d'un défilement de page comme le site officiel de Shiseido? Comment réaliser des effets de défilement de parallaxe et d'animation des éléments, comme le site officiel de Shiseido? ou: Comment pouvons-nous réaliser l'effet d'animation accompagné d'un défilement de page comme le site officiel de Shiseido? Apr 04, 2025 pm 05:36 PM

La discussion sur la réalisation des effets de défilement de parallaxe et d'animation des éléments dans cet article explorera comment réaliser le site officiel de Shiseido (https://www.shiseido.co.jp/sb/wonderland/) ...

La différence dans Console.Log de sortie Résultat: Pourquoi les deux appels sont-ils différents? La différence dans Console.Log de sortie Résultat: Pourquoi les deux appels sont-ils différents? Apr 04, 2025 pm 05:12 PM

Discussion approfondie des causes profondes de la différence de sortie Console.log. Cet article analysera les différences dans les résultats de sortie de la fonction Console.log dans un morceau de code et expliquera les raisons derrière. � ...

JavaScript est-il difficile à apprendre? JavaScript est-il difficile à apprendre? Apr 03, 2025 am 12:20 AM

Apprendre JavaScript n'est pas difficile, mais c'est difficile. 1) Comprendre les concepts de base tels que les variables, les types de données, les fonctions, etc. 2) Master la programmation asynchrone et les implémenter via des boucles d'événements. 3) Utilisez les opérations DOM et promettez de gérer les demandes asynchrones. 4) Évitez les erreurs courantes et utilisez des techniques de débogage. 5) Optimiser les performances et suivre les meilleures pratiques.

Comment implémenter la fonction de glisser-déposer et de régler la fonction de réglage similaire à VScode dans le développement frontal? Comment implémenter la fonction de glisser-déposer et de régler la fonction de réglage similaire à VScode dans le développement frontal? Apr 04, 2025 pm 02:06 PM

Explorez la mise en œuvre de la fonction de glisser et de réglage du panneau de type VScode dans le frontal. Dans le développement frontal, comment implémenter un VScode comme ...

See all articles