Redux Toolkit 2
اول از همه اینجا یه فایل درست میکنیم : src/app/store.js
بعد برای اینکه یه استور خالی درست کنیم از کد های زیر استفاده می کنیم: (همچنین مستقیما به redux devtools هم وصل میشه)
حالا فقط کافیه که توو مسیر src/index.js
کل اپ مون رو داخل استور قرار بدیم تا هرجای اپ به استورمون دسترسی داشته باشیم:
حالا این فایل رو می سازیم : src/features/counter/counterSlice.js
بعدش میاییم از createSlice
استفاده می کنیم
این فایل به یک اسم رشته ای برای نامگذاری، یک مقدار اولیه و یک یا چند تابع reducer برای تغییرات روی متغییرمان نیاز دارد
( این روند به این صورت است که redux از اطلاعات ما کپی می گیرد و سپس تغییرات را روی کپی اعمال می کند )
حال از کد های زیر برای پیکربندی استفاده می کنیم:
حالا برای اینکه این slice که ساختیم رو به store/index.js
بدیم باید به صورت زیر عمل کنیم:
حالا برای اینکه یه کامپوننت تست درست کنیم، توو src/features/counter/Counter.js
یه فایل می سازیم و بعدش اونو توو App.js
استفاده می کنیم: ( حتما توابع درون dispatch ها با () باشد. )
حال اگر بخواهیم کدمان را به صورت async بنویسیم (مثلا برای لاگین و ... که نیاز است اول داده ها را داشته باشیم سپس بر اساس داده ها چیزی را رندر کنیم) باید به صورت زیر عمل کنیم:
توابع extraReducer و createAsyncThunk فقط برای عملیات async استفاده می شود
هرگاه بخواهیم هنگام reject شدن کل داده های ارور را برای ما برگرداند، باید به صورت زیر عمل کنیم