Usecontext vs Redux Toolkit – Community Dev

من یک تازه کار در Redux هستم و واکنش نشان می دهم. اخیراً من در حال تهیه یک پروژه با React هستم ، و من در حال ساختن API تأیید اعتبار کاربر و مدیریت اطلاعات کاربر با استفاده از Redux هستم. من باید دانش خود را در مورد Redux عمیق تر کنم و واکنش نشان دهم زیرا برای یک مبتدی کاملاً چالش برانگیز است.
من مقاله ای در مورد رسیدگی به دولت جهانی پیدا کردم. در این مقاله گزینه های مختلفی برای مدیریت دولت جهانی ارائه شده است.
یکی از مواردی که می خواستم کشف کنم “زمینه” بود. در زیر چند نمونه کد ساده برای بررسی تفاوت بین متن React و Redux آورده شده است.
- اعلام متن.
اول ، من یک زمینه را با استفاده از createContext
بشر این مقدار پیش فرض است. و می توانید یک مقدار را با useState
اگر می خواهید (اگر مقدار را اعلام نکنید ، از مقدار پیش فرض استفاده می شود)
const ThemeContext = createContext('light');
const Main = () => {
const [theme, setTheme] = useState('light');
- ارائه یک مقدار در themecontext.provider. “موضوع” یا همه چیز خوب است. اما اگر به یک مقدار پویا احتیاج دارید ، باید از آن استفاده کنید
useState
بشر
- از حالت جهانی استفاده می کنید؟ در این حالت ، دسترسی
{theme}
در داخلPanel
مؤلفه خوب کار می کند. چونPanel
فرزند استMain
بشر من سعی کردم مقدار را تغییر دهم و به درستی روی صفحه به روز شد.
function Panel({ title, children }) {
const theme = useContext(ThemeContext);
const className="panel-" + theme;
return (
{children}
)
}
من هم اینجا امتحان کردم مقدار اولیه به درستی نمایش داده شد ، اما وقتی سعی کردم آن را روی صفحه تغییر دهم ، به روز نشد. این اتفاق می افتد زیرا Test
مربوط به هر چیزی اصلی یا پانل نیست (نه در themecontext.provider). بنابراین فقط مقدار پیش فرض یا مقدار اولیه را به ما نشان می دهد.
function Test() {
const theme = useContext(ThemeContext);
return (
This is {theme}
)
}
من از Redux Toolkit استفاده کردم ، بسیار ساده است که Global State را فراخوانی می کند.
const count = useSelector(state => state.counter.value)
شما فقط آن را به یک مؤلفه اضافه می کنید.
مؤلفه ها لازم نیست که مربوط باشند. شما لازم نیست که یک پیشنهاد را منتقل کنید.
من می توانم مقدار تغییر را وقتی روی دکمه در هر جایی که کد بالا را وارد می کنم ، ببینم.
بنابراین برخی از مقالات می گویند زمینه واکنش برای مدیریت دولت جهانی نیست. خوب من الان می فهمم اگر سعی کنم از React متن به عنوان مدیریت دولت جهانی استفاده کنم ، سردرد خواهم داشت. من خیلی خوشحالم که از Redux استفاده می کنم.