Maison  >  Article  >  interface Web  >  Choquant! Cette astuce multi-composants fera transpirer les utilisateurs de requêtes de réaction

Choquant! Cette astuce multi-composants fera transpirer les utilisateurs de requêtes de réaction

DDD
DDDoriginal
2024-10-29 22:59:02732parcourir

Shocking! This cross-component trick will make react-query users sweat

Wow, mes collègues développeurs front-end ! Aujourd'hui, je souhaite partager avec vous une fonctionnalité incroyablement utile : 跨组件触发请求. Vous creusez-vous souvent la tête en essayant de mettre en œuvre une liste de pagination fluide ? Ne vous inquiétez pas, j'ai découvert un outil super pratique qui m'a vraiment beaucoup aidé ! Je suis tellement excitée que je pourrais sauter de joie !

alovajs - en avez-vous entendu parler ? Il s'agit d'un outil de requête de nouvelle génération, pas seulement d'un simple client HTTP. Contrairement à React-Query et swrjs, alovajs fournit une solution complète pour les requêtes. Il peut non seulement gérer les appels API de base, mais également optimiser des scénarios d'interaction de données complexes, tels que la liste de pagination dont nous allons discuter aujourd'hui.

Si vous souhaitez approfondir les fonctionnalités puissantes d'alovajs, assurez-vous de consulter le site officiel https://alova.js.org. Je suis sûr que vous découvrirez un tout nouveau monde de demandes de données efficaces !

Voyons maintenant comment alovajs déclenche le déclenchement de requêtes inter-composants en un clin d'œil.

Dans le passé, si vous vouliez déclencher une requête dans un composant à partir d'un autre composant, vous deviez sauvegarder les données dans le Store et les compléter en envoyant une Action. Désormais, vous pouvez utiliser ce middleware pour éliminer la restriction de la hiérarchie des composants et déclencher rapidement les fonctions opérationnelles de toute requête dans n'importe quel composant.

Par exemple, vous pouvez redéclencher la demande du menu de la barre latérale après avoir mis à jour les données du menu dans un certain composant, actualisant ainsi les données. Après avoir opéré sur les données de la liste, vous pouvez déclencher la mise à jour de la liste.

Caractéristiques

  • Déléguer les fonctions de fonctionnement de tout crochet d'utilisation d'alova ;
  • Déclenchez les fonctions d'opération déléguées depuis n'importe quelle position ;

Usage

Utilisation de base

En prenant vue3 comme exemple, l'utilisation est la même dans React et svelte.

Utilisez actionDelegationMiddleware pour déléguer les fonctions opérationnelles de useRequest dans le composant A.

```javascript title=Composant A
importer { actionDelegationMiddleware } depuis 'alova/client';

useRequest(queryTodo, {
// ...
middleware : actionDelegationMiddleware('actionName')
});



In any component (e.g. component B), use `accessAction` to pass in the specified delegation name to trigger the operation functions of `useRequest` in component A.



```javascript title=Component B
import { accessAction } from 'alova/client';

accessAction('actionName', delegatedActions => {
  // Call the send function in component A
  delegatedActions.send();

  // Call the abort function in component A
  delegatedActions.abort();
});

Fonctions d'opération de déclenchement par lots

Dans l'exemple ci-dessus, nous avons utilisé accessAction pour déclencher la fonction d'opération d'un hook d'utilisation, mais en fait, le même nom de délégation ne s'écrasera pas, mais sera enregistré dans un ensemble, et nous pouvons utiliser ce nom pour déclencher leurs fonctions déléguées en même temps.

```javascript title=Composant C
importer { actionDelegationMiddleware } depuis 'alova/client';

useRequest(queryTodo, {
// ...
middleware : actionDelegationMiddleware('actionName1')
});



In any component (e.g. component B), use `accessAction` to pass in the specified delegation name to trigger the operation functions of `useRequest` in component A.



```javascript title=Component B
import { accessAction } from 'alova/client';

accessAction('actionName', delegatedActions => {
  // Call the send function in component A
  delegatedActions.send();

  // Call the abort function in component A
  delegatedActions.abort();
});

```javascript title=Composant E
importer { accessAction } depuis 'alova/client';

// Puisqu'elle correspondra aux hooks délégués du composant C et du composant D, la fonction de rappel sera exécutée deux fois
accessAction('actionName1', déléguéActions => {
// Appelez la fonction send dans le composant C et le composant D
déléguéActions.send();

// Appeler la fonction d'abandon dans le composant C et le composant D
déléguéActions.abort();
});





```javascript title=Component D
import { actionDelegationMiddleware } from 'alova/client';

useRequest(queryTodo, {
  // ...
  middleware: actionDelegationMiddleware('actionName1')
});

```javascript title=Composant G
importer { actionDelegationMiddleware } depuis 'alova/client';

useRequest(queryTodo, {
// ...
middleware : actionDelegationMiddleware('prefix_name2')
});



Additionally, you can use regular expressions in `accessAction` to batch trigger the operation functions that meet the delegation name conditions.



```javascript title=Component F
import { actionDelegationMiddleware } from 'alova/client';

useRequest(queryTodo, {
  // ...
  middleware: actionDelegationMiddleware('prefix_name1')
});

Cette fonctionnalité me facilite vraiment la vie lorsqu'il s'agit de synchronisation de données entre composants. Fini les soucis liés à la cohérence des données ! Et le meilleur, c’est qu’il est si facile à utiliser. Je suis surpris que React-Query et Axios n'aient pas encore proposé quelque chose comme ça.

Si vous êtes confronté à des interactions de composants complexes dans votre développement quotidien, je vous recommande fortement d'essayer alovajs. Cet outil puissant peut améliorer considérablement votre efficacité de développement et votre expérience utilisateur.

Que faites-vous habituellement pour traiter les demandes inter-composants ? Avez-vous rencontré des problèmes ou des solutions intéressantes ? N'hésitez pas à partager vos expériences dans les commentaires ! Discutons et apprenons les uns des autres. J'ai hâte d'entendre vos pensées !

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:
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