تُعرف Redux على نطاق واسع بأنها مكتبة قوية لإدارة الحالة مصممة خصيصًا لتطبيقات JavaScript، وغالبًا ما تُستخدم جنبًا إلى جنب مع إطار العمل الشهير React. من خلال تقديم حاوية حالة يمكن الاعتماد عليها، ينشئ Redux أساسًا متينًا يبسط إلى حد كبير مهمة التعامل مع حالات التطبيق واستكشاف الأخطاء وإصلاحها. يتعمق هذا الدليل في المكونات الأساسية التي يتألف منها Redux، ويقدم شرحًا تفصيليًا لكل عنصر ويوضح كيفية تفاعلها بشكل تآزري لتبسيط الوظيفة العامة للتطبيق. يهدف هذا الاستكشاف المتعمق إلى توضيح الأعمال الداخلية لـ Redux، وتمكين المطورين من فهم تعقيدات أداة إدارة الحالة هذه وتسخير قدراتها بشكل فعال في مشاريعهم.
يتبع Redux نموذج تدفق البيانات أحادي الاتجاه ويستند إلى ثلاثة مبادئ أساسية:
أولاً، قم بتثبيت Redux وReact-Redux:
npm install redux react-redux @reduxjs/toolkit
يقوم هذا الأمر بتثبيت مكتبة Redux الأساسية، وروابط React لـ Redux، ومجموعة أدوات Redux، مما يبسط العديد من المهام الشائعة مثل إعداد المتجر وإنشاء الشرائح.
الإجراءات عبارة عن حمولات من المعلومات التي ترسل البيانات من تطبيقك إلى متجر Redux الخاص بك. أنواع الإجراءات هي ثوابت تمثل الإجراء.
export const INCREMENT = "INCREMENT"; export const DECREMENT = "DECREMENT"; export const INCREMENT_BY_VALUE = "INCREMENT_BY_VALUE"; export const RESET = "RESET"; export const increment = () => ({ type: INCREMENT }); export const decrement = () => ({ type: DECREMENT }); export const incrementByValue = (value) => ({ type: INCREMENT_BY_VALUE, payload: value, }); export const reset = () => ({ type: RESET });
يساعد تحديد الإجراءات وأنواع الإجراءات بشكل واضح في الحفاظ على الاتساق ويقلل الأخطاء في تطبيقك.
تحدد المخفضات كيفية تغير حالة التطبيق استجابةً للإجراءات المرسلة إلى المتجر. الشرائح عبارة عن مجموعة من منطق وإجراءات مخفض Redux لميزة واحدة في تطبيقك، والتي تم إنشاؤها باستخدام طريقة createSlice الخاصة بـ Redux Toolkit.
import { createSlice } from "@reduxjs/toolkit"; const initialState = { number: 0 }; const counterSlice = createSlice({ name: "counter", initialState, reducers: { increment: (state) => { state.number = 5; }, decrement: (state) => { state.number = Math.max(0, state.number - 5); }, incrementByValue: (state, action) => { state.number = action.payload; }, reset: (state) => { state.number = 0; }, }, }); export const { increment, decrement, incrementByValue, reset } = counterSlice.actions; export default counterSlice.reducer;
لدمج شرائح متعددة:
import { combineReducers } from "@reduxjs/toolkit"; import counterReducer from "../slices/counterSlice"; const rootReducer = combineReducers({ counter: counterReducer, }); export default rootReducer;
المتجر هو الكائن الذي يجمع الإجراءات والمخفضات معًا. إنه يحتفظ بحالة التطبيق، ويسمح بالوصول إليها عبر getState()، ويقوم بتحديثها عبر الإرسال(الإجراء)، ويسجل المستمعين عبر الاشتراك(المستمع).
import { configureStore } from "@reduxjs/toolkit"; import rootReducer from "../reducers/rootReducer"; const store = configureStore({ reducer: rootReducer, }); export default store;
لربط مكونات React بمتجر Redux، استخدم مكون الموفر من رد فعل ردوكس لتمرير المتجر إلى مكوناتك، واستخدم خطافات useSelector وuseDispatch للوصول إلى الحالة ومعالجتها.
import React from "react"; import { Provider } from "react-redux"; import store from "./redux/store/store"; import Counter from "./components/Counter"; import MusCo from "./MusCo redux logo.png"; function App() { return (); } export default App; Practice Redux with MusCo
by Mustafa Coskuncelebi
import { useDispatch, useSelector } from "react-redux"; import { decrement, increment, incrementByValue, reset, } from "../slices/counterSlice"; import { useState, useEffect } from "react"; function Counter() { const [value, setValue] = useState(""); const dispatch = useDispatch(); const number = useSelector((state) => state.counter.number); useEffect(() => { const showcase = document.querySelector("#showcase"); if (numberCounter
{number}
{ let newValue = e.target.value.trim(); if (newValue === "") { newValue = ""; reset(); } if (/^\d*$/.test(newValue)) { setValue(newValue); } }} value={value} placeholder="Enter Value" />Counter cannot be less than 0
); } export default Counter;
Redux هي مكتبة قوية لإدارة الحالة في تطبيقاتك. من خلال فهم الإجراءات والمخفضات والمتجر وكيفية ربط كل شيء بمكونات React الخاصة بك، يمكنك إنشاء تطبيقات يمكن التنبؤ بها وقابلة للصيانة.
لمزيد من المعلومات، راجع وثائق Redux الرسمية:
باتباع هذا الدليل، يجب أن يكون لديك فهم قوي لـ Redux وأن تكون قادرًا على تنفيذه في تطبيقاتك الخاصة.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3