البداية · فصل ١

مكون بيعمل كل حاجة

ProductCard · boolean props · if
🎯 الهدف: تعرف ليه كارت المنتج اللي فيه كل الأزرار بيبقى صعب تعديله.

تخيل إنك بتعمل متجر وعندك Product Card.

ProductCard.tsx
function ProductCard({ product }) {  return (    <div className="card">      <img src={product.image} />      <h3>{product.name}</h3>      <p>{product.price}</p>      <button>Add to Cart</button>    </div>  );}

في البداية ده تمام. بعد شوية احتجت:

  • Product Card عادية.
  • Product Card فيها زرار Favorite.
  • Product Card للـ Admin فيها Edit و Delete.
  • Product Card للموبايل بتصميم مختلف.

ممكن تبدأ تزود props كتير.

الاستدعاء
<ProductCard  product={product}  showFavorite  showEdit={isAdmin}  showDelete={isAdmin}  showAddToCart  compact/>

ومع الوقت المكون يبقى مليان شروط if، وصعب تعدّله أو تعيد استخدامه.

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

🧠 اختبر نفسك
١) ليه showFavorite و showEdit و compact مشكلة؟
المكون يبقى مليان شروط، وصعب تعدّله أو تعيد استخدامه.
٢) كارت الأدمن محتاج Edit و Delete. الحل إنك تزود props على نفس الكارت؟
ده اللي بيحصل في الأول، وبعدين الكارت يتقل. التقسيم في الفصل الجاي.