0Pricing
React Academy · درس

شرائح Redux Toolkit وcreateSlice

أنشئ منطق المخفّض باستخدام createSlice، وعرّف الإجراءات، واربطه بمتجر Redux.

شرائح Redux Toolkit وcreateSlice درس مجاني في React Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في React Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة React Academy 4 دروس في المجموع.

مرحبًا

في هذا الدرس، ستنشئ شرائح Redux Toolkit باستخدام createSlice، وتعرّف الإجراءات والمخفّضات في مكان واحد، وتربطها بمخزن Redux

ما هو Redux Toolkit؟

إن Redux Toolkit ‏(RTK) هو الأسلوب الرسمي والمحدد الآراء لكتابة Redux. وهو يزيل التعليمات البرمجية النمطية من خلال دمج المخفّضات ومنشئي الإجراءات والحالة الأولية في استدعاء createSlice() واحد

التثبيت

ثبّت Redux Toolkit وreact-redux
npm install @reduxjs/toolkit react-redux

createSlice

استدعِ createSlice() مع name وinitialState وكائن reducers. وينشئ RTK منشئي الإجراءات وأنواع الإجراءات تلقائيًا
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 من الداخل

يستخدم RTK مكتبة Immer داخليًا، لذا يمكنكم كتابة منطق مُخفِّض يغيّر الحالة (`state.value += 1`) بأمان. وتحولها Immer إلى تحديث غير قابل للتغيير في الخلفية.

تهيئة المتجر

أنشئوا متجر Redux باستخدام configureStore()، وأضيفوا الشرائح الخاصة بكم كمخفِّضات.
import { configureStore } from '@reduxjs/toolkit';
import counterReducer from './counterSlice';

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

إتاحة المتجر

غلّفوا تطبيقكم بمكوّن Provider من react-redux، ومرّروا إليه المتجر.
import { Provider } from 'react-redux';
import { store } from './store';

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

useSelector و useDispatch

اقرؤوا الحالة باستخدام useSelector، وأرسلوا الإجراءات باستخدام useDispatch. واستخدموا النسخ المعرّفة بالأنواع عند العمل مع 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>
    </>
  );
}

أنواع TypeScript

صدّروا نوعَي RootState و AppDispatch من store.ts للحصول على hooks مضمّنة بالأنواع بالكامل.
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);

المخفِّضات الإضافية

يتعامل الحقل extraReducers مع الإجراءات القادمة من شرائح أخرى أو من createAsyncThunk. استخدموا نمط استدعاء builder لإضافة الحالات.
extraReducers: (builder) => {
  builder.addCase(fetchUser.fulfilled, (state, action) => {
    state.user = action.payload;
  });
}

تحقق سريع

لماذا يمكنكم كتابة كود يغيّر الحالة مثل `state.value += 1` داخل مخفِّض Redux Toolkit؟

مراجعة

يجمع createSlice بين name و initialState و reducers في كائن واحد. وتتيح Immer كتابة كود المخفِّض بأسلوب قابل للتغيير. ويجمع configureStore الشرائح. يقرأ useSelector الحالة، بينما يرسل useDispatch الإجراءات.

التالي

الدرس التالي: **المنطق غير المتزامن باستخدام createAsyncThunk** — ستتعاملون مع استدعاءات API في Redux باستخدام أنواع إجراءات دورة الحياة.

الأسئلة الشائعة

هل درس «شرائح Redux Toolkit وcreateSlice» مجاني؟

نعم — نص درس «شرائح Redux Toolkit وcreateSlice» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة React Academy، انتقل إلى CoddyKit PRO. تتضمن دورة React Academy 4 دروس في المجموع.

ماذا ستتعلم في «شرائح Redux Toolkit وcreateSlice»؟

أنشئ منطق المخفّض باستخدام createSlice، وعرّف الإجراءات، واربطه بمتجر Redux. تتمرن على React Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ React Academy؟

لا تُشترط خبرة سابقة. React Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «شرائح Redux Toolkit وcreateSlice»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس React Academy هذا؟

نعم. كل درس في React Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. شرائح Redux Toolkit وcreateSlice
  2. المنطق غير المتزامن باستخدام createAsyncThunk
  3. ‏RTK Query: نقاط النهاية والتخزين المؤقت التلقائي
  4. التحديثات التفاؤلية وإبطال التخزين المؤقت
← العودة إلى React Academy