包括的なガイドGrapqlクライアント、パート2
4433 ワード
URQL
公式リポジトリによると、URLQLは以下の通りです.
The highly customizable and versatile GraphQL client with which you add on features like normalized caching as you grow.
urqlは高度なGraphSQLクライアントです.近代的な開発では、特に、複雑なアプリケーションを構築している必要があります.
インストール
npm install urql graphql
import React from 'react';
import FetchedData from './FetchData';
import { createClient, Provider } from 'urql';
const client = createClient({
url: 'https://countries.trevorblades.com/',
});
export default function App() {
return (
<Provider value={client}>
<FetchedData />
</Provider>
);
}
import React from "react";
import { useQuery } from "urql";
const countriesQuery = `
query {
countries {
name
}
}
`;
const FetchedData = () => {
const [result] = useQuery({ query: countriesQuery });
const { data, fetching, error } = result;
console.log(data);
if (fetching) return <p>Loading...</p>;
if (error) return <p>Error: {error.message}</p>;
const countriesList = data.countries.map((country, i) => (
<ul key={i}>{country.name}</ul>
));
return (
<div>
<h1>Countries</h1>
{countriesList}
</div>
);
};
export default FetchedData;
SWR
データを取得する簡単で効果的な方法はSWRライブラリを使うことです.
SWRをインストールします
npm install swr
まず、ライブラリをインポートし、fetcher関数を作成する必要があります.GraphSQLでSWRを使用するには、GraphSQLリクエストまたはGraphicalフックのようなライブラリを使用してカスタム取得者関数を作成します.import { request } from "graphql-request";
import useSWR from "swr";
const FetchedData = () => {
const countriesQuery = `
query {
countries {
name
}
}
`;
const url = "https://countries.trevorblades.com/";
const fetcher = () => request(url, countriesQuery);
const { data, error } = useSWR(countriesQuery, fetcher);
if (error) return <div>failed to load</div>;
if (!data) return <div>loading...</div>;
const countriesList = data?.countries.map((c, i) => <ul key={i}>{c.name}</ul>);
return (
<>
<h1>Countries</h1>
{countriesList}
</>
);
};
export default FetchedData;
import FetchedData from "./FetchData";
export default function App() {
return (
<FetchedData />
);
}
それは簡単です.ご覧のように、GRWQLでSWRを使用することは簡単です.あなたは状態管理システムを作成する必要は避け、すべてのロジックはUSEWRフックにあります.応答クエリ
公式文書として
Because React Query's fetching mechanisms are agnostically built on Promises, you can use React Query with literally any asynchronous data fetching client, including GraphQL!
応答クエリは非常にSWRに似ていますが、それは反応コンテキストの上に構築され、フックを反応させる.
レスポンスをインストール
npm install react-query
import { request } from "graphql-request";
import { useQuery } from "react-query";
const FetchedData = () => {
const countriesQuery = `
query {
countries {
name
}
}
`;
const url = "https://countries.trevorblades.com/";
const fetcher = () => request(url, countriesQuery);
const { isLoading, error, data } = useQuery(url, fetcher);
if (error) return <div>failed to load</div>;
if (isLoading) return <div>loading...</div>;
const countriesList = data?.countries.map((c, i) => <ul key={i}>{c.name}</ul>);
return (
<>
<h1>Countries</h1>
{countriesList}
</>
);
};
export default FetchedData;
import FetchedData from "./FetchData";
import { QueryClient, QueryClientProvider } from "react-query";
const queryClient = new QueryClient();
export default function App() {
return (
<QueryClientProvider client={queryClient}>
<FetchedData />
</QueryClientProvider>
);
}
うまくいけば、あなたのアプリケーションのための“理想的な”クライアントを見つけることが、このポストは、その方法で肯定的な思考を追加しました.Reference
この問題について(包括的なガイドGrapqlクライアント、パート2), 我々は、より多くの情報をここで見つけました https://dev.to/drago/comprehensive-guide-to-graphql-clients-part-2-3o8fテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol