React Academy · Pelajaran

RTK Query: Titik Akhir & Caching Automatik

Takrifkan titik akhir pertanyaan dan mutasi dengan createApi, kemudian biarkan RTK Query mengurus caching.

Pelajaran 3 daripada 413 langkah

RTK Query: Titik Akhir & Caching Automatik ialah pelajaran React Academy percuma di CoddyKit. Ini ialah pelajaran 3 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran React Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus React Academy merangkumi sejumlah 4 pelajaran.

Selamat Datang

Dalam pelajaran ini, Anda akan mentakrifkan titik akhir query dan mutation dengan createApi RTK Query serta membiarkannya mengurus penyimpanan sementara, keadaan pemuatan dan pengambilan data secara automatik.

Apakah RTK Query?

RTK Query ialah lapisan pengambilan data dan penyimpanan sementara yang terbina dalam Redux Toolkit. Ia menghapuskan pengurusan manual keadaan pemuatan dan ralat, menggabungkan permintaan pendua serta menyimpan respons berdasarkan titik akhir dan argumen.

Mencipta API dengan createApi

Panggil createApi() dengan reducerPath, baseQuery dan titik akhir. Hasilnya merangkumi cangkuk React yang dijana.
import { createApi, fetchBaseQuery } from '@reduxjs/toolkit/query/react';

export const userApi = createApi({
  reducerPath: 'userApi',
  baseQuery: fetchBaseQuery({ baseUrl: '/api' }),
  endpoints: (builder) => ({
    getUser: builder.query({ query: (id) => '/users/' + id }),
    getUsers: builder.query({ query: () => '/users' }),
  }),
});

export const { useGetUserQuery, useGetUsersQuery } = userApi;

Menambahkan API kepada Stor

Tambahkan pengurang yang dijana dan perisian tengah kepada configureStore. Perisian tengah mengendalikan kitar hayat penyimpanan sementara, pembatalan kesahan dan pengambilan semula.
import { configureStore } from '@reduxjs/toolkit';
import { userApi } from './userApi';

export const store = configureStore({
  reducer: { [userApi.reducerPath]: userApi.reducer },
  middleware: (gDM) => gDM().concat(userApi.middleware),
});

Menggunakan Cangkuk Query

Panggil cangkuk yang dijana dalam komponen. Cangkuk ini mengembalikan data, isLoading, isError dan refetch. Data disimpan berdasarkan argumen — cangkuk yang sama dengan argumen yang sama mengembalikan data tersimpan serta-merta.
function UserCard({ id }) {
  const { data, isLoading, isError } = useGetUserQuery(id);
  if (isLoading) return <Spinner />;
  if (isError) return <p>Error</p>;
  return <p>{data.name}</p>;
}

Penyingkiran Penduaan Automatik

Jika dua komponen dipasang serentak dan memanggil useGetUsersQuery(), RTK Query menghantar hanya satu permintaan rangkaian dan berkongsi respons antara kedua-dua komponen.

TTL Data Tersimpan dengan keepUnusedDataFor

Kawal berapa lama data tersimpan kekal dalam stor selepas semua pelanggan dinyahpasang. Nilai lalai ialah 60 saat. Tetapkannya bagi setiap titik akhir.
endpoints: (builder) => ({
  getUser: builder.query({
    query: id => '/users/' + id,
    keepUnusedDataFor: 300, // 5 minutes
  }),
})

Pengundian untuk Data Langsung

Hantar `pollingInterval` kepada pemanggilan cangkuk untuk mengambil semula data secara automatik setiap N milisaat. Berguna untuk papan pemuka dan suapan langsung.
const { data } = useGetStatsQuery(undefined, {
  pollingInterval: 5000, // refetch every 5 seconds
});

Argumen Query dan Langkauan

Hantar nilai tidak ditakrifkan atau gunakan pilihan `skip` untuk melangkau query secara bersyarat. Berguna apabila ID yang diperlukan belum tersedia.
const { data } = useGetUserQuery(userId, { skip: !userId });

Mengubah Bentuk Respons

Gunakan `transformResponse` untuk mengubah bentuk respons API sebelum menyimpannya. Ini memastikan komponen kekal bersih — komponen menerima bentuk yang telah diproses, bukan format API mentah.
getUsers: builder.query({
  query: () => '/users',
  transformResponse: (raw) => raw.data.users,
})

Semakan Pantas

Apakah yang berlaku jika dua komponen memanggil cangkuk RTK Query yang sama dengan argumen yang sama pada masa yang sama?

Imbas Kembali

createApi mentakrifkan titik akhir dan menjana cangkuk bertip. Tambahkan pengurang dan perisian tengah kepada stor. Cangkuk query mengembalikan data, isLoading dan isError. Respons disimpan serta penduaannya dibuang secara automatik.

Seterusnya

Pelajaran seterusnya: **Kemas Kini Optimistik & Pembatalan Kesahan Data Tersimpan** — Anda akan mengemas kini UI serta-merta apabila berlaku mutation dan membatalkan kesahan data tersimpan dengan teg.
Percuma untuk bermula

Pelajari React dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
88
Pelajaran
324

Soalan Lazim

Adakah pelajaran “RTK Query: Titik Akhir & Caching Automatik” percuma?

Ya — teks penuh “RTK Query: Titik Akhir & Caching Automatik” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus React Academy, tingkat taraf kepada CoddyKit PRO. Kursus React Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “RTK Query: Titik Akhir & Caching Automatik”?

Takrifkan titik akhir pertanyaan dan mutasi dengan createApi, kemudian biarkan RTK Query mengurus caching. Anda berlatih React Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan React Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran React Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 3 daripada 4.

Berapa lamakah pelajaran “RTK Query: Titik Akhir & Caching Automatik” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran React Academy ini?

Ya. Setiap pelajaran React Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Hirisan Redux Toolkit & createSlice
  2. Logik Tak Segerak dengan createAsyncThunk
  3. RTK Query: Titik Akhir & Caching Automatik
  4. Kemas Kini Optimistik & Pembatalan Cache
← Kembali ke React Academy