グローバル・ステータス管理を覆す理由📌
5863 ワード
reduceはステータス管理ライブラリです.
構成部品のステータス管理ロジックを分離することで、効率的に管理できます.
グローバルステータスも一緒に管理されるライブラリです.
プロジェクトの初期に役立つhookと巨大な状態をより簡単に処理することができます.
リデックスを持ってきました.
プロジェクトの4週間後
私たちのstoreは非常に肥大化しています.
グローバルステータスを取得するために書くというより、
呼び出したAPIにデータを書き込み、管理することで、単一のコンポーネントでもグローバル状態の使用が減少し、APIリクエスト状態を使用して使用されるようになりました.
これによりstoreはいつの間にかグローバルステータス管理ではなくなります.
より多くのAPI通信の集中化を感じさせます.
storeは非同期通信の中央システムと見なし,
完全な戦区状態管理のために、別の解決策を考え出した.
React Queryは*サーバの状態を管理するためのライブラリです.
うち*Server Stateはは、クライアントが所有または制御しないリモートスペースに格納されます. データのインポートと更新には非同期API が必要他の人と一緒に使用し、私が知らないうちに を更新することができます.クライアントで使用されるデータは「期限切れ」になる可能性があります. グローバル状態と単一素子上の非同期通信を完全に分離するために、
React Queryライブラリを使用してサーバーのステータスをスクロールすることを決定します.
ReactQueryはとても魅力的なライブラリです.
私たちはReact Queryが提供する2つの強力な機能に興味を持っています.データのマウントまたは作成、更新および削除要求の発行時に、isLoadingおよびisSuccessなどのデータ取得のために複数のconfig が使用されるのQueryのUnique Keyを受信することにより、QueryClientの失効したQueryメソッドを使用して特定のクエリの強制Refresh機能 を実行することができる.受信したデータに加えて、ロードやerrorなど様々なFlagをより便利に使用できます. の作成、更新、削除など、ワークステーションリクエスト時にサーバの値が変化します.
QueryClientが提供するinvalidateQueryメソッドにより、この鍵を持つQueryに対してrefectを行い、グローバル状態と同じ効果でリフレッシュすることができる.
個々のコンポーネントは少し大きく見えますが、Storeはクライアントの状態を管理するためにのみ使用されるため、Storeとのコードは非常に簡単になります.
構成部品のステータス管理ロジックを分離することで、効率的に管理できます.
グローバルステータスも一緒に管理されるライブラリです.
プロジェクトの初期に役立つhookと巨大な状態をより簡単に処理することができます.
リデックスを持ってきました.
問題が発生😡
プロジェクトの4週間後
私たちのstoreは非常に肥大化しています.
グローバルステータスを取得するために書くというより、
呼び出したAPIにデータを書き込み、管理することで、単一のコンポーネントでもグローバル状態の使用が減少し、APIリクエスト状態を使用して使用されるようになりました.
これによりstoreはいつの間にかグローバルステータス管理ではなくなります.
より多くのAPI通信の集中化を感じさせます.
storeは非同期通信の中央システムと見なし,
完全な戦区状態管理のために、別の解決策を考え出した.
React Queryの導入🔥
React Queryは*サーバの状態を管理するためのライブラリです.
うち*Server Stateは
React Queryライブラリを使用してサーバーのステータスをスクロールすることを決定します.
React Queryの使用
ReactQueryはとても魅力的なライブラリです.
私たちはReact Queryが提供する2つの強力な機能に興味を持っています.
const { isLoading, error, data, isFetching } = useQuery("repoData", () =>
fetch(
"https://api.github.com/repos/tannerlinsley/react-query"
).then((res) => res.json())
);
if (isLoading) return "Loading...";
if (error) return "An error has occurred: " + error.message;
const { mutate: deleteClass } = useMutation(
(classid: string) => api.deleteClass(classid),
{
onSuccess: () => {
console.log('1');
dispatch(closeModal());
queryClient.invalidateQueries('teachCard');
navigate('/');
},
}
);
QueryClientが提供するinvalidateQueryメソッドにより、この鍵を持つQueryに対してrefectを行い、グローバル状態と同じ効果でリフレッシュすることができる.
n/a.結論🎭
個々のコンポーネントは少し大きく見えますが、Storeはクライアントの状態を管理するためにのみ使用されるため、Storeとのコードは非常に簡単になります.
Reference
この問題について(グローバル・ステータス管理を覆す理由📌), 我々は、より多くの情報をここで見つけました https://velog.io/@woo1031/우리가-전역-상태관리를-뒤엎은-이유テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol