مشکل همیشه React نیست.
خیلی وقتها مشکل از اینه که State بدون معماری مشخص پخش شده.
مثلاً یک پروژه رو تصور کن:
Component A
↓
useState
Component B
↓
Context
Component C
↓
Redux
Component D
↓
URL Params
Component E
↓
localStorage
همهچیز هم کار میکنه...
تا وقتی که یک Feature جدید اضافه بشه. 😐
بعد ناگهان باید بفهمی:
«منبع اصلی این Data کجاست؟»
اینجاست که یک اصل مهم وارد میشه:
State Ownership
هر State باید یک مالک مشخص داشته باشه.
مثلاً:
UI State
Component → نزدیک
Shared Client State
→ Store
Server State
→ Query Cache
URL State
→ URL
و نکته مهمتر:
اینکه Server State رو با Client State قاطی نکن.
اطلاعاتی که از API میاد الزاماً نباید داخل Redux ذخیره بشه.
چون Server State ویژگیهایی مثل:
* Cache
* Refetch
* Stale Data
* Synchronization
* Loading/Error State
داره.
برای همین ابزارهایی مثل TanStack Query دقیقاً برای همین مسئله ساخته شدن.
💡 معماری خوب یعنی قبل از اینکه State زیاد بشه، مشخص کنی هر داده متعلق به کجاست و چه کسی مسئول Lifecycle اون دادهست.
@CodeVerse_dev