ホームページ >ウェブフロントエンド >jsチュートリアル >React Query とデータベースを使用したデータのインポートとエクスポート

React Query とデータベースを使用したデータのインポートとエクスポート

WBOY
WBOYオリジナル
2023-09-26 11:05:091048ブラウズ

使用 React Query 和数据库进行数据导入和导出

React Query とデータベースを使用したデータのインポートとエクスポート

最新の Web アプリケーションでは、データのインポートとエクスポートは非​​常に一般的なタスクです。 React Query をデータ管理ライブラリとして使用し、データのインポートおよびエクスポート操作用のデータベースと組み合わせることで、これらのタスクをより効率的に処理できます。この記事では、React Query とサンプル データベースを使用してデータのインポートおよびエクスポート操作を完了する方法を紹介し、具体的なコード例を示します。

1. 準備

まず、React Query をインストールして設定する必要があります。次のコマンドを使用して、新しい React プロジェクトを初期化し、React Query をインストールできます。

npx create-react-app my-app
cd my-app
npm install react-query

次に、データを保存するサンプル データベースを準備する必要があります。ここでは例として SQLite データベースを使用します。次のコマンドを使用して SQLite3 をインストールできます。

npm install sqlite3

プロジェクトのルート ディレクトリに database.sqlite ファイルをデータベース ファイルとして作成します。

次に、データのインポートとエクスポートを管理するための React コンポーネントを作成する必要があります。 src ディレクトリに DataExportImport.js という名前のファイルを作成し、その中に次のコードを記述します。

import React from 'react';
import { useQueryClient } from 'react-query';

const DataExportImport = () => {
  const queryClient = useQueryClient();

  const handleExportData = async () => {
    const data = await fetch('/api/export');
    const jsonData = await data.json();
    // 处理导出的数据...
  };

  const handleImportData = async () => {
    const response = await fetch('/api/import');
    const json = await response.json();
    // 处理导入的数据...
    queryClient.invalidateQueries('data'); // 更新数据
  };

  return (
    <div>
      <button onClick={handleExportData}>导出数据</button>
      <button onClick={handleImportData}>导入数据</button>
    </div>
  );
};

export default DataExportImport;

上記のコードでは、 を使用します。 useQueryClient フック関数は、クエリの管理に使用されるインスタンスを React Query から取得します。次に、2 つの処理関数 handleExportDatahandleImportData を定義しました。これらは、それぞれデータのエクスポート操作とインポート操作を処理するために使用されます。

handleExportData この関数は、GET リクエストを /api/export インターフェイスに送信して、エクスポートされたデータを取得します。実際のプロジェクトでは、このインターフェースは実際の状況に応じて構成する必要があり、Express.js や Nest.js などのバックエンド技術スタックを使用して実装できます。

handleImportData 関数は、GET リクエストを /api/import インターフェイスに送信して、データをデータベースにインポートします。繰り返しますが、このインターフェイスは実際の状況に応じて構成する必要があります。

データのインポートおよびエクスポート操作を処理した後、queryClient.invalidateQueries('data') を呼び出して、データ関連のクエリを更新するように React Query に通知します。

2. アプリケーションで DataExportImport コンポーネントを使用する

DataExportImport コンポーネントをアプリケーションに追加するには、src/App.js## を編集します。 # ファイルを実行します。たとえば、アプリケーションの最上位コンポーネントの上にファイルをインポートするボタンを追加できます。

import React from 'react';
import { QueryClient, QueryClientProvider } from 'react-query';
import DataExportImport from './DataExportImport';

const queryClient = new QueryClient();

function App() {
  return (
    <QueryClientProvider client={queryClient}>
      <div>
        <DataExportImport />
        {/* 其他组件... */}
      </div>
    </QueryClientProvider>
  );
}

export default App;

上記のコードでは、最初に

QueryClientQueryClientProvider# を導入しました。 ## コンポーネント、および queryClient のインスタンスが作成されます。次に、アプリケーションの最上位コンポーネントで QueryClientProvider を使用して、アプリケーション内のすべてのコンポーネントに queryClient インスタンスを提供します。

DataExportImport

コンポーネントをアプリケーションの最上位コンポーネントに配置し、実際のニーズに応じて位置を調整します。 3. インポートおよびエクスポート操作を呼び出します

最後に、

/api/export

および /api/import インターフェイスを実装する必要があります。データのインポートとエクスポートを処理します。この例では、Express.js を使用してこれらのインターフェイスを実装します。 プロジェクトのルート ディレクトリに

server.js

ファイルを作成し、次のコードを記述します。 <pre class='brush:javascript;toolbar:false;'>const express = require('express'); const sqlite3 = require('sqlite3').verbose(); const app = express(); const port = 5000; const db = new sqlite3.Database('./database.sqlite'); app.get('/api/export', (req, res) =&gt; { db.serialize(() =&gt; { db.all('SELECT * FROM your_table', (err, rows) =&gt; { if (err) { console.error(err.message); res.status(500).send(err.message); } else { res.json(rows); } }); }); }); app.get('/api/import', (req, res) =&gt; { // 处理导入数据的逻辑... }); app.listen(port, () =&gt; { console.log(`Server is running on port ${port}`); });</pre>上記のコードでは、Express.js# を呼び出します。 ##app.get

メソッドは、2 つの GET リクエスト インターフェイス

/api/export/api/import を作成します。ここでのロジックは実際のニーズに応じて記述できます。たとえば、SQLite の db.all メソッドを使用してデータベースからデータをクエリし、res.json# を呼び出してデータを JSON として取得できます。 ## メソッド。フォーマットはフロントエンドに返されます。 実際の状況に応じて設定し、対応する依存関係をインストールしてください。次のコマンドを使用して Express.js サーバーを起動できます: <pre class='brush:bash;toolbar:false;'>node server.js</pre>この時点で、React Query とデータベースを使用したデータのインポートとエクスポートが完了しました。ページ上のボタンをクリックすると、対応する操作をトリガーし、React Query を使用してデータ クエリを管理できます。

この記事では、実際の状況に応じて拡張および最適化できる簡単な例を示します。この記事が、React Query とデータベースを使用してデータをインポートおよびエクスポートする方法をよりよく理解するのに役立つことを願っています。

以上がReact Query とデータベースを使用したデータのインポートとエクスポートの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。