recherche
Maisoninterface Webjs tutorielImplémenter l'abonnement et la publication de données à l'aide de React Query et de la base de données

利用 React Query 和数据库实现数据订阅和发布

Utilisez React Query et la base de données pour mettre en œuvre l'abonnement et la publication de données

Introduction :
Dans le développement front-end moderne, la mise à jour et la communication des données en temps réel sont une partie très importante. React Query est une excellente bibliothèque de gestion de couche de données qui offre de puissantes capacités de requête de données et de mise en cache. Combiné à la fonction de surveillance en temps réel de la base de données, nous pouvons facilement mettre en œuvre l'abonnement et la publication des données. Cet article expliquera comment utiliser React Query et la base de données pour implémenter l'abonnement et la publication de données, et donnera des exemples de code correspondants.

1. Préparation de l'environnement :
Avant de commencer la mise en œuvre, assurez-vous que l'environnement dont nous avons besoin est prêt. Tout d’abord, nous avons besoin d’une base de données backend appropriée, telle que MongoDB, Firebase, etc. Deuxièmement, nous devons créer une application React et installer React Query. Vous pouvez créer et initialiser une nouvelle application React avec la commande suivante :

npx create-react-app react-query-demo
cd react-query-demo

Ensuite, installez React Query :

npm install react-query

2. Configurer l'écoute de la base de données :
Dans la base de données, nous devons configurer un auditeur pour obtenir les données en temps réel. le temps se renouvelle. La méthode d'implémentation spécifique varie d'une base de données à l'autre. Nous prenons ici Firebase comme exemple. Tout d'abord, créez un nouveau projet dans la console Firebase et obtenez les informations de configuration correspondantes. Ensuite, installez les modules firebase et firebase/app dans le projet React : firebasefirebase/app 模块:

npm install firebase
npm install firebase/app

在 React 项目的入口文件(通常是 src/index.js)中,引入 Firebase 并初始化:

import firebase from 'firebase/app';
import 'firebase/database';

const firebaseConfig = {
  // 你的 Firebase 配置信息
};

firebase.initializeApp(firebaseConfig);
const database = firebase.database();

接下来,我们可以使用 database.ref() 来获取到 Firebase 数据库的根引用,并调用 on() 方法来设置监听器:

const dataRef = database.ref('data');

dataRef.on('value', (snapshot) => {
  const data = snapshot.val();
  // 数据更新操作
});

三、使用 React Query:
现在我们已经设置好数据库监听器,下面我们来利用 React Query 对数据进行订阅和发布。首先,创建一个新的 React Query 实例,并将其作为组件树的根组件:

import { QueryClient, QueryClientProvider } from 'react-query';

const queryClient = new QueryClient();

ReactDOM.render(
  <QueryClientProvider client={queryClient}>
    <App />
  </QueryClientProvider>,
  document.getElementById('root')
);

请确保在 src/index.js 中导入相关模块。然后,我们可以通过 useQuery 钩子来订阅数据:

import { useQuery } from 'react-query';

const App = () => {
  const query = useQuery('data', () => {
    // 获取数据的逻辑
  });

  // 渲染数据
  return (
    <div>
      {query.isLoading ? (
        'Loading...'
      ) : query.error ? (
        'An error occurred: ' + query.error.message
      ) : (
        // 渲染数据
      )}
    </div>
  );
};

其中,useQuery 接受两个参数,第一个参数是查询标识(可以是字符串或数组),第二个参数是获取数据的逻辑函数。

为了实现数据的实时更新,我们可以在 useQuery 的第二个参数函数中调用 onSnapshot 方法,并将数据注入 queryClient 中:

import { useQuery } from 'react-query';

const App = () => {
  const query = useQuery('data', async () => {
    const snapshot = await dataRef.once('value');
    const data = snapshot.val();
    queryClient.setQueryData('data', data); // 注入数据到 queryClient 中
    return data;
  });

  // 渲染数据
  return (
    <div>
      {query.isLoading ? (
        'Loading...'
      ) : query.error ? (
        'An error occurred: ' + query.error.message
      ) : (
        // 渲染数据
      )}
    </div>
  );
};

最后,我们还可以通过 useMutation 钩子来发布数据的变更:

import { useMutation } from 'react-query';

const App = () => {
  const mutation = useMutation((newData) => {
    // 更新数据的逻辑
  });

  // 发布数据
  const handlePublish = () => {
    mutation.mutate(newData);
  };

  return (
    <div>
      {/* ... */}
      <button onClick={handlePublish}>Publish</button>
    </div>
  );
};

通过 useMutation 钩子创建的 mutation 对象提供了 mutate 方法,可以用来触发数据的变更。

结束语:
本文介绍了如何利用 React Query 和数据库实现数据的订阅和发布。首先,我们设置了数据库的监听器,以实时获取数据的更新。然后,我们使用 React Query 的 useQuery 钩子来订阅数据,并通过 useMutationrrreee

Dans le fichier d'entrée du projet React (généralement src/index.js code>), introduisez Firebase et initialisez-le :

rrreee

Ensuite, nous pouvons utiliser database.ref() pour obtenir la référence racine de la base de données Firebase et appeler on( ) code> pour configurer l'écouteur : <ul>rrreee<li> 3. Utilisez React Query : </li>Maintenant que nous avons configuré l'écouteur de base de données, utilisons React Query pour nous abonner et publier des données. Tout d'abord, créez une nouvelle instance de React Query et faites-en le composant racine de l'arborescence des composants : <li>rrreee</li> Assurez-vous d'importer les modules pertinents dans <code>src/index.js. Ensuite, on peut s'abonner aux données via le hook useQuery : rrreee🎜 Parmi eux, useQuery accepte deux paramètres, le premier paramètre est l'identifiant de la requête (peut être une chaîne ou array ), le deuxième paramètre est la fonction logique pour obtenir les données. 🎜🎜Afin de réaliser une mise à jour des données en temps réel, nous pouvons appeler la méthode onSnapshot dans la deuxième fonction paramètre de useQuery et injecter les données dans queryClient Medium : 🎜rrreee🎜Enfin, nous pouvons également publier les modifications de données via le hook <code>useMutation : 🎜rrreee🎜mutation objets créés via useMutation hook La méthode mutate est fournie, qui peut être utilisée pour déclencher des modifications de données. 🎜🎜Conclusion : 🎜Cet article explique comment utiliser React Query et la base de données pour s'abonner et publier des données. Tout d’abord, nous avons configuré un écouteur de base de données pour obtenir des mises à jour des données en temps réel. Nous utilisons ensuite le hook useQuery de React Query pour nous abonner aux données, et utilisons le hook useMutation pour publier les modifications apportées aux données. J'espère que cet article vous a aidé à mettre en œuvre l'abonnement et la publication de données dans des projets réels. 🎜🎜Liens de référence : 🎜🎜🎜Documentation React Query : https://react-query.tanstack.com/🎜🎜Documentation Firebase : https://firebase.google.com/docs🎜🎜

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
Comprendre le moteur JavaScript: détails de l'implémentationComprendre le moteur JavaScript: détails de l'implémentationApr 17, 2025 am 12:05 AM

Comprendre le fonctionnement du moteur JavaScript en interne est important pour les développeurs car il aide à écrire du code plus efficace et à comprendre les goulots d'étranglement des performances et les stratégies d'optimisation. 1) Le flux de travail du moteur comprend trois étapes: analyse, compilation et exécution; 2) Pendant le processus d'exécution, le moteur effectuera une optimisation dynamique, comme le cache en ligne et les classes cachées; 3) Les meilleures pratiques comprennent l'évitement des variables globales, l'optimisation des boucles, l'utilisation de const et de locations et d'éviter une utilisation excessive des fermetures.

Python vs JavaScript: la courbe d'apprentissage et la facilité d'utilisationPython vs JavaScript: la courbe d'apprentissage et la facilité d'utilisationApr 16, 2025 am 12:12 AM

Python convient plus aux débutants, avec une courbe d'apprentissage en douceur et une syntaxe concise; JavaScript convient au développement frontal, avec une courbe d'apprentissage abrupte et une syntaxe flexible. 1. La syntaxe Python est intuitive et adaptée à la science des données et au développement back-end. 2. JavaScript est flexible et largement utilisé dans la programmation frontale et côté serveur.

Python vs JavaScript: communauté, bibliothèques et ressourcesPython vs JavaScript: communauté, bibliothèques et ressourcesApr 15, 2025 am 12:16 AM

Python et JavaScript ont leurs propres avantages et inconvénients en termes de communauté, de bibliothèques et de ressources. 1) La communauté Python est amicale et adaptée aux débutants, mais les ressources de développement frontal ne sont pas aussi riches que JavaScript. 2) Python est puissant dans les bibliothèques de science des données et d'apprentissage automatique, tandis que JavaScript est meilleur dans les bibliothèques et les cadres de développement frontaux. 3) Les deux ont des ressources d'apprentissage riches, mais Python convient pour commencer par des documents officiels, tandis que JavaScript est meilleur avec MDNWEBDOCS. Le choix doit être basé sur les besoins du projet et les intérêts personnels.

De C / C à JavaScript: comment tout cela fonctionneDe C / C à JavaScript: comment tout cela fonctionneApr 14, 2025 am 12:05 AM

Le passage de C / C à JavaScript nécessite de s'adapter à la frappe dynamique, à la collecte des ordures et à la programmation asynchrone. 1) C / C est un langage dactylographié statiquement qui nécessite une gestion manuelle de la mémoire, tandis que JavaScript est dynamiquement typé et que la collecte des déchets est automatiquement traitée. 2) C / C doit être compilé en code machine, tandis que JavaScript est une langue interprétée. 3) JavaScript introduit des concepts tels que les fermetures, les chaînes de prototypes et la promesse, ce qui améliore la flexibilité et les capacités de programmation asynchrones.

Moteurs JavaScript: comparaison des implémentationsMoteurs JavaScript: comparaison des implémentationsApr 13, 2025 am 12:05 AM

Différents moteurs JavaScript ont des effets différents lors de l'analyse et de l'exécution du code JavaScript, car les principes d'implémentation et les stratégies d'optimisation de chaque moteur diffèrent. 1. Analyse lexicale: convertir le code source en unité lexicale. 2. Analyse de la grammaire: générer un arbre de syntaxe abstrait. 3. Optimisation et compilation: générer du code machine via le compilateur JIT. 4. Exécuter: Exécutez le code machine. Le moteur V8 optimise grâce à une compilation instantanée et à une classe cachée, SpiderMonkey utilise un système d'inférence de type, résultant en différentes performances de performances sur le même code.

Au-delà du navigateur: Javascript dans le monde réelAu-delà du navigateur: Javascript dans le monde réelApr 12, 2025 am 12:06 AM

Les applications de JavaScript dans le monde réel incluent la programmation côté serveur, le développement des applications mobiles et le contrôle de l'Internet des objets: 1. La programmation côté serveur est réalisée via Node.js, adaptée au traitement de demande élevé simultané. 2. Le développement d'applications mobiles est effectué par le reactnatif et prend en charge le déploiement multiplateforme. 3. Utilisé pour le contrôle des périphériques IoT via la bibliothèque Johnny-Five, adapté à l'interaction matérielle.

Construire une application SaaS multi-locataire avec next.js (intégration backend)Construire une application SaaS multi-locataire avec next.js (intégration backend)Apr 11, 2025 am 08:23 AM

J'ai construit une application SAAS multi-locataire fonctionnelle (une application EdTech) avec votre outil technologique quotidien et vous pouvez faire de même. Premièrement, qu'est-ce qu'une application SaaS multi-locataire? Les applications saas multi-locataires vous permettent de servir plusieurs clients à partir d'un chant

Comment construire une application SaaS multi-locataire avec Next.js (Frontend Integration)Comment construire une application SaaS multi-locataire avec Next.js (Frontend Integration)Apr 11, 2025 am 08:22 AM

Cet article démontre l'intégration frontale avec un backend sécurisé par permis, construisant une application fonctionnelle EdTech SaaS en utilisant Next.js. Le frontend récupère les autorisations des utilisateurs pour contrôler la visibilité de l'interface utilisateur et garantit que les demandes d'API adhèrent à la base de rôles

See all articles

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

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Puissant environnement de développement intégré PHP

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Version crackée d'EditPlus en chinois

Version crackée d'EditPlus en chinois

Petite taille, coloration syntaxique, ne prend pas en charge la fonction d'invite de code

Navigateur d'examen sécurisé

Navigateur d'examen sécurisé

Safe Exam Browser est un environnement de navigation sécurisé permettant de passer des examens en ligne en toute sécurité. Ce logiciel transforme n'importe quel ordinateur en poste de travail sécurisé. Il contrôle l'accès à n'importe quel utilitaire et empêche les étudiants d'utiliser des ressources non autorisées.

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel