Button/Card/Modal componentlari, variant pattern va DRY tamoyili — misol, test va amaliy topshiriqlar bilan.
App.jsxReact JSXfunction Button({ variant = "primary", children }) {const base = "px-6 py-3 rounded-lg font-medium transition duration-200";const variants = {primary: "bg-blue-500 hover:bg-blue-600 text-white",secondary: "bg-gray-200 hover:bg-gray-300 text-gray-800",};return <button className={`${base} ${variants[variant]}`}>{children}</button>;}
App.jsxReact JSXfunction Modal({ isOpen, onClose, children }) {if (!isOpen) return null;return (<div className="fixed inset-0 bg-black/50 flex items-center justify-center z-50"><div className="bg-white rounded-xl p-6 max-w-md w-full mx-4 shadow-2xl">{children}</div></div>);}
Task: Button componentini yarating, kamida 2 ta variant bilan (primary, secondary).
Task: Card componentini yarating va uni 3 marta turli ma'lumotlar bilan render qiling.
Task: To'liq Modal componentini yarating — ochilish/yopilish state'i bilan (useState), fonga bosilganda yopiladigan qilib.
App.jsxReact JSXfunction Badge({ status }) {return <span className={styles[status]}>{status}</span>;}
Your Task: Agar status="unknown" uzatilsa (obyektda mavjud bo'lmagan kalit), nima bo'ladi va qanday tuzatasiz?
Component — bir xil klasslarni takrorlash o'rniga, stil+xatti-harakatni birlashtirish. Variant pattern (object orqali klass tanlash) — Button, Badge kabi ko'p holatli componentlar uchun standart yechim.
base + variants obyekt patterni — DRY tamoyilining amaliy qo'llanilishifixed inset-0 bg-black/50 flex items-center justify-center standart naqshcode.textTEXTNaqsh: base classes + variant classes (object orqali tanlash)Modal: fixed inset-0 bg-black/50 flex items-center justify-centerCard: rounded-xl shadow-md overflow-hidden
Mavzu bo‘yicha tushunchalaringizni interaktiv test orqali sinovdan o‘tkazing va natijalarni bilib oling.
Darslikda o‘rganilgan qoidalarga asosan real kod yozing, testlardan o‘tkazing va yechimlarni mustahkamlang.
Test Sinovi
Hali topshirilmagan (kamida 75% kerak)
Amaliy Masalalar
0 / 3 ta yechildi (kamida 75% kerak)
Dars sifati va mazmunini yaxshilash uchun o‘z haqqoniy bahoingizni qoldiring.
Mavzuni to‘liq o‘zlashtirish uchun test sinovi, amaliy kodlash va bog‘liq darslar
O‘z bilimingizni interaktiv test savollari orqali tekshiring va darhol xatolarni tahlil qiling.
Nazariyani real kod yozish bilan mustahkamlang, avtomatik testlardan o‘ting va XP to‘plang.
Kurs bo‘yicha keyingi va bog‘liq mavzular: