الفرق · فصل ٢

الفرق عن حالة السيرفر

TanStack Query · server cart · guest cart · coupon
🎯 الهدف: تعرف إيه اللي مصدره السيرفر فيفضل في TanStack Query، وإيه اللي يفضل حالة عميل.

أهم نقطة عشان متقعش في مشكلة تخزين نفس الداتا في أكتر من مكان.

البياناتالنوع المناسب
قائمة المنتجات من الـ APIServer State — TanStack Query
تفاصيل منتج وسعره الحاليServer State
عدد المنتجات في سلة محفوظة على السيرفرServer State
فتح Modal إضافة للسلةLocal UI State
فلتر السعر والتصنيفURL State
بيانات عنوان الشحن أثناء الكتابةForm State
سلة Guest قبل تسجيل الدخولClient-owned Domain State
نتيجة تطبيق Coupon من السيرفرServer State
حالة إظهار PasswordLocal UI State
لو السلة محفوظة على السيرفر، متعملش نسخة كاملة منها في Zustand ونسخة تانية في TanStack Query من غير سبب واضح.

كده هتضطر تحافظ على التزامن بين نسختين.

أما لو عندك Guest Cart، ممكن تخزنها محليًا. بعد تسجيل الدخول تعمل Merge مع السلة المحفوظة على السيرفر وفقًا لقواعد الـ Backend.

خلّصت الفصل لما

🧠 اختبر نفسك
١) نتيجة تطبيق الكوبون رجعت من السيرفر. نوعها إيه؟
Server State.
٢) ليه متخزنش سلة السيرفر في Zustand وفي TanStack Query مع بعض؟
هتبقى نسختين لنفس الداتا، ولازم تحافظ على التزامن بينهم.