プログラミングマガジン

プログラミングを中心にIT技術をできるだけわかりやすくまとめます。

  • ホーム
  • React
  • 【React】「React Query」について
 
 
     
  • サーバー言語  
    • Python
    • Ruby
    • PHP
    • SQL
  •  
  • インフラ  
       
    • AWS
    •  
    • 基本
    • Git
  • Web
       
    • Web開発
    • JavaScript
    • Vue.js
    • React
  •  
  • 設計  
       
    • 実装設計
    • DB設計
  • 問い合わせ
  

【React】「React Query」について

05.30

  • miyabisan2
  • コメントを書く

この記事は2分で読めます

React Queryとは?

2020年2月にリリースされた。

リリースノート

バージョンリリース日説明
3
42022/4React18に対応した。suspenseなどと組み合わせる実装が増えてます。

SWR

同系統のライブラリとしてSWRがあります。React Queryと比較するとSWRの方がシンプルなライブラリになっていて軽量です。なのでプロジェクトの特性に合わせてReact QueryかSWRどちらを使うかを検討していくと良いでしょう。

メリット

fetchの回数を減らせる。

サーバーから取得したデータをキャッシュに格納できるようになり、不要なAPI fetchの回数を減らすことができるようになったuseContextやReduxではできなかった。

従来だとuseEffectで第二引数に[]を指定していたとしてもマウントされる度にfetchが実行される。なので、別画面に行って戻ってきたとしても改めてfetchが実行されたりする。React QueryはstaleTimeによって再fetchの間隔を制御できたりする。

また、キャッシュからデータを取得する場合はLoadingが表示されずすぐにデータを閲覧できるメリットもある。

Reduxに格納するデータ量を減らせる。

React Queryによりfetchしてキャッシュに格納されたデータは自動的にグローバルステートになります。

なので、様々なコンポーネントから自由に呼び出すことが可能になります。

コード量がかなり減る。

従来のuseContextやReduxを使った書き方に比べると下記の処理を記述しなくてよくコード記述量が減る。

  • useEffectでfetchする処理
  • fetch状況の取得

staleTime

staletime(例えば、10秒)というのを設定しておいてその間に改めてアクセスしたとしても改めてfetchは行わずにキャッシュから取得する。また、APIのエンドポイントごとに設定することは可能。

なので、例えばサーバーデータがほとんど変わらないようなAPIの場合はstaleTimeを長めに設定しておくなどの設定を選択したりする。

また、キャッシュのデータが古い可能性もあるがとりあえず古いデータを取得してその裏で最新データを取得してくれる。(Loadingが表示されない。)

なお、staleに到達したとしてもreact-Queryのv4以降はReactの再レンダリングが行われなくなっています。(それまでは行われる。)

useQuery

データを取得する。

useMutation(ユースミューテーション)

データ登録、削除、更新したい場合に使う。

スポンサーリンク
  • 2021 05.30
  • miyabisan2
  • コメントを書く
  • React
  • Tweets Twitter
  • このエントリーをはてなブックマークに追加
  • LINEで送る

関連記事

  1. 2021 02.08

    【Redux】Reduxの基本と動作の仕組み、3原則(単一情報源、イミュータブル、純粋関数)

  2. 2021 02.11

    【React】テスト手法概要、Next.jsへのcypressの導入方法など

  3. 2022 03.06

    【React】「CSSの選択肢」(Pure CSS、CSS Modules、CSS in JSなど)

  4. 2021 02.08

    【Redux】「Reducer」、「Action」の実装方法

  5. 2021 02.11

    【React】props、「モック」を使ったテスト、React Hooksのテスト

  6. 2021 02.09

    【React】「material-ui」について

  • コメント ( 0 )
  • トラックバック ( 0 )
  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

返信をキャンセルする。

【React】パフォーマンス改善対策、レンダリングの仕…

【React】「React Query」の「useQu…

RETURN TOP

著者プロフィール

エンジニア歴10年で過去に業務系、Webデザイン、インフラ系なども経験あります。現在はWeb系でフロントエンド開発中心です。

詳細なプロフィールはこちら

スポンサーリンク

カテゴリー

  • Android
  • AngularJS
  • API
  • AWS
  • C++
  • CSS
  • cursor
  • C言語
  • DDD
  • DevOps
  • Django
  • Docker
  • Figma
  • Git
  • GitLab
  • GraphQL
  • gRPC
  • Hasura
  • Java
  • JavaScript
  • Kubernetes
  • Laravel
  • linux
  • MySQL
  • Next.js
  • nginx
  • Node.js
  • NoSQL
  • Nuxt.js
  • Oracle
  • PHP
  • Python
  • React
  • Redux
  • Rspec
  • Ruby
  • Ruby on Rails
  • Sass
  • Spring Framework
  • SQL
  • TypeScript
  • Unity
  • Vue.js
  • Webサービス開発
  • Webデザイン
  • Web技術
  • インフラ
  • オブジェクト指向
  • システム開発
  • セキュリティ
  • その他
  • データベース
  • デザインパターン
  • テスト
  • ネットワーク
  • プログラミング全般
  • マイクロサービス
  • マイクロソフト系技術
  • マルチメディア
  • リファクタリング
  • 副業
  • 未分類
  • 業務知識
  • 生成AI
  • 設計
  • 関数型言語
RETURN TOP

Copyright ©  プログラミングマガジン | プライバシーポリシー