Declarative va imperative dasturlash farqi, component-based architecture va React'ning asosiy mental modeli — testlar va mashqlar bilan.
React — JavaScript library, alohida til emas. Bu bobda declarative va imperative dasturlash farqini, hamda React qaysi muammoni yechishini o'rganamiz.
Imperative — "qanday" qilishni bosqichma-bosqich aytish. Declarative — faqat "nima" kerakligini aytish, "qanday"ni tizim o'zi hal qiladi.
script.jsJavaScriptlet count = 0;const button = document.querySelector("#btn");button.addEventListener("click", () => {count++;document.querySelector("#count").textContent = count;});
App.jsxReact JSXfunction Counter() {const [count, setCount] = useState(0);return <button onClick={() => setCount(count + 1)}>{count}</button>;}
🧠 UI = f(state) — UI har doim state'ning funksiyasi. State o'zgarsa, UI avtomatik yangilanadi.
UI mustaqil, qayta ishlatiluvchi bo'laklar (komponentlar)ga bo'linadi.
code.textTEXTApp├── Header├── Main│ ├── Hero│ └── Products└── Footer
Katta ilovalarda har bir UI qismi (navbar, karta, forma) alohida komponent sifatida yoziladi va boshqa joylarda qayta ishlatiladi.
Task: Vanilla JS'da oddiy "like" tugmasi yozing (bosilganda son oshadi).
Hint: addEventListener va textContentdan foydalaning.
Task: Xuddi shu "like" tugmasini React komponent sifatida useState bilan qayta yozing.
Hint: const [likes, setLikes] = useState(0);
App.jsxReact JSXfunction Counter() {let count = 0;return <button onClick={() => { count++; console.log(count); }}>{count}</button>;}
Your Task: Tugma bosilganda konsolda son oshadi, lekin ekrandagi son o'zgarmaydi. Nega?
<details> <summary>Solution</summary> `count` — oddiy o'zgaruvchi, React uni kuzatmaydi. `count++` qiymatni o'zgartiradi, lekin React bu haqda bilmagani uchun komponentni qayta render qilmaydi (UI yangilanmaydi).Yechim: useState ishlatish kerak:
</details>App.jsxReact JSXfunction Counter() {const [count, setCount] = useState(0);return <button onClick={() => setCount(count + 1)}>{count}</button>;}
React — declarative UI kutubxonasi. UI = f(state) — bu React'ning asosiy mental modeli. Component-based architecture UI'ni mustaqil, qayta ishlatiluvchi bo'laklarga bo'ladi.
UI = f(state) — state o'zgarsa, UI avtomatik yangilanadicode.textTEXTImperative: "qanday" qilishni ayting (vanilla JS)Declarative: "nima" kerakligini ayting (React)UI = f(state)
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 / 2 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: