Conditional classes, dark mode, responsive komponentlar va Tailwind'ning dinamik klass nomlari bilan bog'liq cheklovi — test va mashqlar bilan.
Bu bob Tailwind'ning o'zini emas, uni React komponentlari bilan integratsiya qilish usullarini o'rgatadi.
App.jsxReact JSXfunction Button({ variant = "primary", children }) {const base = "px-4 py-2 rounded font-medium";const variants = {primary: "bg-blue-600 text-white hover:bg-blue-700",secondary: "bg-gray-200 text-gray-800 hover:bg-gray-300",};return <button className={`${base} ${variants[variant]}`}>{children}</button>;}
App.jsxReact JSX<div className="bg-white dark:bg-gray-900 text-black dark:text-white p-4 md:p-8">Kontent</div>
App.jsxReact JSXfunction Card({ children, className = "" }) {return (<div className={`bg-white rounded-lg shadow-md p-6 ${className}`}>{children}</div>);}
💡 Key Idea
className propini qabul qilib, uni standart klasslar bilan birlashtirish — komponentni moslashuvchan qiladi, tashqaridan qo'shimcha stil berish imkonini beradi.
Task: primary, secondary, danger variantlariga ega Button komponenti yarating.
App.jsxReact JSXfunction Alert({ type }) {return <div className={`alert-${type}`}>Xabar</div>;}
Your Task: Bu Tailwind bilan ishlaydimi? Nega yoki nega yo'q?
<details> <summary>Solution</summary> Yo'q — Tailwind build vaqtida qaysi klasslar ishlatilganini statik tahlil qiladi. Dinamik ravishda yaratilgan (`alert-${type}`) klass nomlari Tailwind tomonidan aniqlanmaydi va CSS'ga qo'shilmaydi. Yechim — barcha mumkin bo'lgan klasslarni to'liq, statik yozish: ```jsx const styles = { success: "bg-green-100 text-green-800", error: "bg-red-100 text-red-800" }; <div className={styles[type]}>Xabar</div> ``` </details>Tailwind'ni React bilan integratsiya qilishda: conditional classes obyekt orqali, className propini qabul qilib composition'ga imkon berish, va dinamik klass nomlaridan saqlanish muhim.
className propi — komponentni moslashuvchan qiladiApp.jsxReact JSXconst variants = { primary: "bg-blue-600", secondary: "bg-gray-200" };<button className={`base-classes ${variants[variant]}`}>...</button>function Card({ className = "" }) { return <div className={`card-base ${className}`}>...</div>; }
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 / 1 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: