ホームページ > 記事 > ウェブフロントエンド > React Query でデータベース トランザクション操作を実装する方法
React Query でデータベース トランザクション操作を実装する方法には、特定のコード サンプルが必要です
はじめに:
React Query は、状態を管理するための強力な状態管理ライブラリです。フロントエンド アプリケーションとバックエンド データ間の相互作用。データ キャッシュ、自動データ更新、エラー処理などの多くの機能を提供します。ただし、アプリケーションを開発する場合、データの整合性を確保するために、一連のデータベース操作をトランザクションとして実行する必要がある場合があります。この記事では、React Query を使用してデータベース トランザクション操作を実装する方法を紹介し、具体的なコード例を示します。
QueryClient
クラスを使用してクライアント インスタンスを作成し、それをアプリケーションの最上位コンポーネントに配置できます。以下に例を示します。 import { QueryClient, QueryClientProvider } from 'react-query'; const queryClient = new QueryClient(); function App() { return ( <QueryClientProvider client={queryClient}> // your app components </QueryClientProvider> ); } export default App;
useMutation
フックを使用してデータベース トランザクション操作メソッドを作成できます。このフックは、非同期リクエストを送信し、リクエストのステータスを管理するために使用されます。以下は、useMutation
を使用してデータベース トランザクション操作メソッドを作成する例です。 import { useMutation } from 'react-query'; function useTransaction() { const { mutateAsync, isLoading, isError, error } = useMutation(async (data) => { // 执行数据库事务操作的异步请求 const response = await fetch('https://example.com/transaction', { method: 'POST', body: JSON.stringify(data), headers: { 'Content-Type': 'application/json', }, }); if (!response.ok) { throw new Error('Transaction failed'); } return response.json(); }); return { mutateAsync, isLoading, isError, error }; } export default useTransaction;
上記のコードでは、useMutation
フックの最初のパラメーターは非同期です コールバック関数は、データベース トランザクション操作の非同期リクエストを実行するために使用されます。リクエストが成功した場合、関数は応答データを返す必要があります。リクエストが失敗した場合は、throw new Error()
ステートメントを使用してエラーをスローできます。
useMutation
フックによって返されるオブジェクトには、次の 4 つのプロパティが含まれます:
mutateAsync
: トランザクション操作を非同期に実行する関数。渡されるパラメータはコールバック関数のパラメータとして使用されます。 isLoading
: 現在の非同期リクエストが読み込み状態であるかどうかを示します。 isError
: 現在の非同期リクエストにエラーがあるかどうかを示します。 error
: エラーが発生した場合、エラー メッセージを含むオブジェクト。 useTransaction
関数を任意のコンポーネントで使用して、データベース トランザクション操作を実行できます。以下は、useTransaction
フックの使用例です。
import { useTransaction } from 'path/to/useTransaction'; function TransactionForm() { const { mutateAsync, isLoading, isError, error } = useTransaction(); const handleTransaction = async (data) => { try { // 执行数据库事务操作 await mutateAsync(data); // 执行成功的逻辑 } catch (error) { // 处理错误 } }; return ( <form onSubmit={handleTransaction}> // form fields <button type="submit" disabled={isLoading}>提交事务</button> {isError && <div>{error.message}</div>} </form> ); } export default TransactionForm;
フックを使用して mutateAsync を取得します。
関数とその他のステータス属性。 mutateAsync
関数を使用してデータベース トランザクション操作を実行し、isLoading
プロパティに基づいて送信ボタンを無効または有効にします。トランザクション操作中にエラーが発生した場合、エラー メッセージは error
属性から取得できます。 結論:
useMutation
フックを使用すると、データベース トランザクション操作を簡単に実装できます。カスタム useTransaction
フックを作成して、トランザクション操作の状態を管理し、必要に応じて呼び出すことができます。これにより、コードが簡素化され、コードの保守性と可読性が向上します。この記事の内容があなたのお役に立てば幸いです!
以上がReact Query でデータベース トランザクション操作を実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。