Controlled input, bir nechta input uchun object state, checkbox/select va validatsiya — test va mashqlar bilan.
Events va State birlashib — formalarni boshqarish uchun asos yaratadi.
App.jsxReact JSXconst [name, setName] = useState("");return <input value={name} onChange={(e) => setName(e.target.value)} />;
HTML formalarida input o'z ichki holatini o'zi saqlaydi (uncontrolled). React'da ma'lumotni state orqali boshqarish (controlled) — validatsiya, formatlash va real-vaqtda reaksiyani osonlashtiradi.
App.jsxReact JSXconst [form, setForm] = useState({ email: "", password: "" });function handleChange(e) {const { name, value } = e.target;setForm({ ...form, [name]: value });}
App.jsxReact JSX<input type="checkbox" checked={agreed} onChange={(e) => setAgreed(e.target.checked)} />function handleSubmit(e) {e.preventDefault();if (!form.email.includes("@")) {setError("Email noto'g'ri");return;}}
Task: Ism kiritish uchun controlled input yarating.
Task: Email + parol maydonlari bo'lgan forma, bitta object state bilan.
App.jsxReact JSXconst [email, setEmail] = useState("");return <input value={email} />;
Your Task: Foydalanuvchi bu inputga yoza olmaydi. Nega?
<details> <summary>Solution</summary> `onChange` yo'q — shuning uchun `email` state'i hech qachon yangilanmaydi, input "qotib qolgan" qiymat bilan qoladi. Yechim: ```jsx <input value={email} onChange={(e) => setEmail(e.target.value)} /> ``` </details>Controlled input — value state'dan, o'zgarish onChange orqali. Bir nechta input uchun bitta object state qulay yechim. Validatsiya — submitdan oldin yoki real-vaqtda amalga oshiriladi.
value + onChange — controlled input formulasichecked, boshqa inputlar uchun valueApp.jsxReact JSX<input value={v} onChange={(e) => setV(e.target.value)} /><input type="checkbox" checked={c} onChange={(e) => setC(e.target.checked)} />function handleChange(e) {const { name, value } = e.target;setForm({ ...form, [name]: value });}
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: