DOM elementiga murojaat qilish, re-render qilmaydigan mutable qiymat saqlash va useRef vs useState taqqoslash — test va mashqlar bilan.
useState re-render qiladi. Ba'zan bizga qiymatni saqlash kerak, lekin re-render kerak emas — bunga useRef javob beradi.
App.jsxReact JSXfunction SearchBox() {const inputRef = useRef(null);useEffect(() => {inputRef.current.focus(); // komponent mount bo'lganda avtomatik fokus}, []);return <input ref={inputRef} />;}
App.jsxReact JSXfunction RenderCounter() {const renderCount = useRef(0);renderCount.current++; // bu o'zgarish re-render chaqirmaydireturn <p>Bu komponent {renderCount.current} marta render bo'ldi</p>;}
code.textTEXTuseState: qiymat o'zgarsa → re-render bo'ladi → UI yangilanadiuseRef: qiymat o'zgarsa → re-render bo'lmaydi → faqat "eslab qolinadi"
App.jsxReact JSXfunction VideoPlayer({ src }) {const videoRef = useRef(null);return (<><video ref={videoRef} src={src} /><button onClick={() => videoRef.current.play()}>▶️</button><button onClick={() => videoRef.current.pause()}>⏸️</button></>);}
Task: Sahifa yuklanganda avtomatik fokus oluvchi input yarating.
Task: usePrevious hook yordamida oldingi va joriy qiymatni solishtiring.
App.jsxReact JSXfunction Counter() {const countRef = useRef(0);function increment() {countRef.current++;}return (<><p>{countRef.current}</p><button onClick={increment}>+</button></>);}
Your Task: Tugma bosilganda countRef.current oshadi, lekin ekrandagi son yangilanmaydi. Nega?
useRef — DOM elementiga murojaat qilish va re-render qilmaydigan qiymat saqlash uchun. .currentni o'zgartirish UI'ni yangilamaydi.
.current o'zgarishi re-render qilmaydiApp.jsxReact JSXconst ref = useRef(initialValue);ref.current; // o'qish/yozish, re-render qilmaydi<input ref={ref} /> // DOM elementiga bog'lashref.current.focus(); // DOM metodini chaqirish
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: