سیدمهدی جلالی
یوتوب:
https://www.youtube.com/@SeyedTechStuff
حمایت (دونیت):
https://reymit.ir/seyedmahdi
بوست:
https://t.me/boost/techstuff100
لینکدین:
https://www.linkedin.com/in/seyed-mahdi-jalali
توییتر:
https://twitter.com/seyedmahdii_
Post #44
391

مدیریت state در React: از useState تا useReducer
مدیریت stateها توی کامپوننتهای React گاهی خیلی پیچیده میشه. مخصوصا وقتی از useStateهای متعدد برای state های مرتبط استفاده میکنیم. نتیجهش میشه یه کامپوننت شلوغ که نگهداریش سخته. وقتی stateها به هم وابستهن، آپدیت کردنشون با useStateهای جداگانه میتونه دردسرساز بشه. هر تغییر کوچیک نیاز به کلی کد داره و پیدا کردن باگها هم سختتر میشه؛ چون trace کردن تغییرات state خیلی پیچیدهست.
توی همچین وضعیتی، useReducer خیلی بکارمون میاد. به جای اینکه stateهای مرتبط رو با useStateهای جدا مدیریت کنیم، میتونیم همهشون رو توی یه آبجکت بذاریم و با یه reducer مدیریتشون کنیم. حتی میتونیم یه قدم جلوتر بریم و یه custom hook بسازیم که جزئیات پیادهسازی reducer رو مخفی کنه و یه interface تمیز به کامپوننتهامون بده. این جوری کدمون هم تمیزتر میشه، هم نگهداریش راحتتر.
لینک مقاله:
https://thetshaped.dev/p/how-to-use-reducer-in-react-for-better-and-simpler-state-management
#react
@techstuff100
مدیریت stateها توی کامپوننتهای React گاهی خیلی پیچیده میشه. مخصوصا وقتی از useStateهای متعدد برای state های مرتبط استفاده میکنیم. نتیجهش میشه یه کامپوننت شلوغ که نگهداریش سخته. وقتی stateها به هم وابستهن، آپدیت کردنشون با useStateهای جداگانه میتونه دردسرساز بشه. هر تغییر کوچیک نیاز به کلی کد داره و پیدا کردن باگها هم سختتر میشه؛ چون trace کردن تغییرات state خیلی پیچیدهست.
توی همچین وضعیتی، useReducer خیلی بکارمون میاد. به جای اینکه stateهای مرتبط رو با useStateهای جدا مدیریت کنیم، میتونیم همهشون رو توی یه آبجکت بذاریم و با یه reducer مدیریتشون کنیم. حتی میتونیم یه قدم جلوتر بریم و یه custom hook بسازیم که جزئیات پیادهسازی reducer رو مخفی کنه و یه interface تمیز به کامپوننتهامون بده. این جوری کدمون هم تمیزتر میشه، هم نگهداریش راحتتر.
لینک مقاله:
https://thetshaped.dev/p/how-to-use-reducer-in-react-for-better-and-simpler-state-management
#react
@techstuff100
- 👍 3
- 🤔 1


















