0Pricing
React Academy · Pelajaran

RTK Query: Endpoint & Penyimpanan Tembolok Otomatis

Definisikan endpoint kueri dan mutasi dengan createApi, lalu biarkan RTK Query mengelola penyimpanan tembolok.

RTK Query: Endpoint & Penyimpanan Tembolok Otomatis adalah pelajaran React Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar React Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus React Academy mencakup 4 pelajaran total.

Selamat Datang

Dalam pelajaran ini, Anda akan mendefinisikan endpoint query dan mutation dengan createApi milik RTK Query, lalu membiarkannya mengelola cache, status pemuatan, dan pengambilan data secara otomatis.

Apa Itu RTK Query?

RTK Query adalah lapisan pengambilan data dan caching yang tersedia di dalam Redux Toolkit. RTK Query menghilangkan kebutuhan untuk mengelola status pemuatan dan kesalahan secara manual, menghindari duplikasi permintaan, serta menyimpan respons berdasarkan endpoint dan argumennya.

Membuat API dengan createApi

Panggil createApi() dengan reducerPath, baseQuery, dan endpoints. Hasilnya mencakup hook React yang dibuat secara otomatis.
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 ke Store

Tambahkan reducer dan middleware yang dibuat secara otomatis ke configureStore. Middleware tersebut menangani siklus hidup cache, invalidasi, dan pengambilan ulang data.
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 Hook Query

Panggil hook yang dibuat secara otomatis di dalam komponen. Hook ini mengembalikan data, isLoading, isError, dan refetch. Data disimpan dalam cache berdasarkan argumen — hook yang sama dengan argumen yang sama akan langsung mengembalikan data dari cache.
function UserCard({ id }) {
  const { data, isLoading, isError } = useGetUserQuery(id);
  if (isLoading) return <Spinner />;
  if (isError) return <p>Error</p>;
  return <p>{data.name}</p>;
}

Deduplicasi Otomatis

Jika dua komponen dipasang secara bersamaan dan memanggil useGetUsersQuery(), RTK Query hanya mengirimkan satu permintaan jaringan dan membagikan responsnya kepada kedua komponen.

TTL Cache dengan keepUnusedDataFor

Atur berapa lama data yang disimpan dalam cache tetap berada di store setelah semua pelanggan berhenti berlangganan. Nilai bawaannya adalah 60 detik. Atur nilainya untuk setiap endpoint.
endpoints: (builder) => ({
  getUser: builder.query({
    query: id => '/users/' + id,
    keepUnusedDataFor: 300, // 5 minutes
  }),
})

Polling untuk Data Langsung

Teruskan `pollingInterval` ke pemanggilan hook untuk mengambil ulang data secara otomatis setiap N milidetik. Cara ini berguna untuk dasbor dan umpan langsung.
const { data } = useGetStatsQuery(undefined, {
  pollingInterval: 5000, // refetch every 5 seconds
});

Argumen Query dan Pelewatan

Teruskan undefined atau gunakan opsi `skip` untuk melewati query secara kondisional. Cara ini berguna ketika ID yang diperlukan belum tersedia.
const { data } = useGetUserQuery(userId, { skip: !userId });

Mengubah Bentuk Respons

Gunakan `transformResponse` untuk mengubah struktur respons API sebelum menyimpannya di cache. Dengan demikian, komponen tetap bersih — komponen menerima struktur data yang sudah diproses, bukan format API mentah.
getUsers: builder.query({
  query: () => '/users',
  transformResponse: (raw) => raw.data.users,
})

Pemeriksaan Singkat

Apa yang terjadi jika dua komponen memanggil hook RTK Query yang sama dengan argumen yang sama pada waktu yang bersamaan?

Rangkuman

createApi mendefinisikan endpoint dan membuat hook bertipe. Tambahkan reducer dan middleware ke store. Hook query mengembalikan data, isLoading, dan isError. Respons disimpan dalam cache dan dideduplicasi secara otomatis.

Selanjutnya

Pelajaran berikutnya: **Pembaruan Optimistis & Invalidasi Cache** — Anda akan memperbarui UI secara langsung saat mutation berlangsung dan membatalkan cache yang tersimpan dengan tag.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “RTK Query: Endpoint & Penyimpanan Tembolok Otomatis” gratis?

Ya — teks lengkap “RTK Query: Endpoint & Penyimpanan Tembolok Otomatis” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus React Academy, upgrade ke CoddyKit PRO. Kursus React Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “RTK Query: Endpoint & Penyimpanan Tembolok Otomatis”?

Definisikan endpoint kueri dan mutasi dengan createApi, lalu biarkan RTK Query mengelola penyimpanan tembolok. Kamu berlatih React Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai React Academy?

Tidak diperlukan pengalaman sebelumnya. React Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “RTK Query: Endpoint & Penyimpanan Tembolok Otomatis” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran React Academy ini?

Ya. Setiap pelajaran React Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Slice Redux Toolkit & createSlice
  2. Logika Asinkron dengan createAsyncThunk
  3. RTK Query: Endpoint & Penyimpanan Tembolok Otomatis
  4. Pembaruan Optimistis & Pembatalan Validitas Tembolok
← Kembali ke React Academy