0Pricing
React Academy · Pelajaran

Slice Redux Toolkit & createSlice

Buat logika reducer dengan createSlice, definisikan aksi, dan hubungkan ke store Redux.

Slice Redux Toolkit & createSlice adalah pelajaran React Academy gratis di CoddyKit. Ini adalah pelajaran 1 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 membuat bagian Redux Toolkit dengan createSlice, mendefinisikan tindakan dan pereduksi di satu tempat, lalu menghubungkannya ke penyimpanan Redux.

Apa Itu Redux Toolkit?

Redux Toolkit (RTK) adalah cara resmi dan berpola jelas untuk menulis Redux. Pustaka ini menghilangkan kode berulang dengan menggabungkan pereduksi, pembuat tindakan, dan status awal ke dalam satu pemanggilan createSlice().

Instalasi

Instal Redux Toolkit dan react-redux.
npm install @reduxjs/toolkit react-redux

createSlice

Panggil createSlice() dengan name, initialState, dan objek reducers. RTK secara otomatis menghasilkan pembuat tindakan dan tipe tindakan.
import { createSlice } from '@reduxjs/toolkit';

const counterSlice = createSlice({
  name: 'counter',
  initialState: { value: 0 },
  reducers: {
    increment: state => { state.value += 1; },
    decrement: state => { state.value -= 1; },
    incrementBy: (state, action) => { state.value += action.payload; },
  },
});

export const { increment, decrement, incrementBy } = counterSlice.actions;
export default counterSlice.reducer;

Immer di Balik Layar

RTK menggunakan Immer secara internal, sehingga Anda dapat menulis logika reducer yang memodifikasi state (`state.value += 1`) dengan aman. Di balik layar, Immer mengubahnya menjadi pembaruan yang tidak memutasi data.

Mengonfigurasi Store

Buat store Redux dengan configureStore() dan tambahkan slice Anda sebagai reducer.
import { configureStore } from '@reduxjs/toolkit';
import counterReducer from './counterSlice';

export const store = configureStore({
  reducer: {
    counter: counterReducer,
  },
});

Menyediakan Store

Bungkus aplikasi Anda dengan Provider dari react-redux, lalu teruskan store ke dalamnya.
import { Provider } from 'react-redux';
import { store } from './store';

createRoot(document.getElementById('root')).render(
  <Provider store={store}><App /></Provider>
);

useSelector dan useDispatch

Baca state dengan useSelector dan dispatch aksi dengan useDispatch. Gunakan versi bertipe untuk TypeScript.
import { useSelector, useDispatch } from 'react-redux';

function Counter() {
  const value = useSelector(state => state.counter.value);
  const dispatch = useDispatch();
  return (
    <>
      <p>{value}</p>
      <button onClick={() => dispatch(increment())}>+</button>
      <button onClick={() => dispatch(incrementBy(5))}>+5</button>
    </>
  );
}

Tipe TypeScript

Ekspor tipe RootState dan AppDispatch dari store.ts untuk membuat hook sepenuhnya bertipe.
export type RootState = ReturnType<typeof store.getState>;
export type AppDispatch = typeof store.dispatch;
// Then use typed hooks:
const value = useSelector((s: RootState) => s.counter.value);

Reducer Tambahan

Kolom extraReducers menangani aksi dari slice lain atau createAsyncThunk. Gunakan pola callback builder untuk menambahkan kasus.
extraReducers: (builder) => {
  builder.addCase(fetchUser.fulfilled, (state, action) => {
    state.user = action.payload;
  });
}

Pemeriksaan Singkat

Mengapa Anda dapat menulis kode yang memodifikasi state seperti `state.value += 1` di dalam reducer Redux Toolkit?

Rangkuman

createSlice menggabungkan name, initialState, dan reducers menjadi satu objek. Immer memungkinkan penulisan kode reducer dengan gaya mutable. configureStore menyusun berbagai slice. useSelector membaca state, sedangkan useDispatch mengirimkan aksi.

Selanjutnya

Pelajaran berikutnya: **Logika Asinkron dengan createAsyncThunk** — Anda akan menangani panggilan API di Redux dengan tipe aksi pada setiap tahap siklus hidup.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Slice Redux Toolkit & createSlice” gratis?

Ya — teks lengkap “Slice Redux Toolkit & createSlice” 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 “Slice Redux Toolkit & createSlice”?

Buat logika reducer dengan createSlice, definisikan aksi, dan hubungkan ke store Redux. 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 1 dari 4.

Berapa lama pelajaran “Slice Redux Toolkit & createSlice” 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