تخيل إنك بتعمل متجر وعندك 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 على نفس الكارت؟
ده اللي بيحصل في الأول، وبعدين الكارت يتقل. التقسيم في الفصل الجاي.