React'da boshqariladigan va boshqarilmaydigan komponentlar o'rtasidagi farqlar haqida gapiring.
sobes.tech AI
AIdan javob
Boshqariladigan komponentlar useState (yoki sinflarda this.state) orqali o'z holatini boshqaradi va propslar orqali ma'lumotlar va qaytish funksiyalarini oladi. Masalan, forma holati React holatida saqlanadi va onChange hodisasi bilan yangilanadi.
Boshqarilmaydigan komponentlar o'z holatini DOM ichida saqlaydi. Ularning qiymatiga kirish uchun useRef (yoki sinflarda React.createRef) ishlatiladi, bu DOM elementiga havola olish uchun. Masalan, forma elementlarining qiymati to'g'ridan-to'g'ri DOMdan olinadi yuborish vaqtida.
| Xususiyat | Boshqariladigan komponent | Boshqarilmaydigan komponent |
|---|---|---|
| Holatni boshqarish | React holati (useState) |
DOM |
| Qiymatga kirish | Holat va props orqali | Refs (useRef) orqali |
| Yangilanish | Reaktiv, har o'zgarishda | Aniq harakatda (masalan, yuborish) |
| Validatsiya | React mantiqida | Standart HTML API yoki qo'lda qiymat olgach |
Misol uchun boshqariladigan komponent:
import React, { useState } from 'react';
function ControlledInput() {
const [value, setValue] = useState('');
const handleChange = (event) => {
setValue(event.target.value);
}
return (
<input type="text" value={value} onChange={handleChange} />
);
}
Misol uchun boshqarilmaydigan komponent:
import React, { useRef } from 'react';
function UncontrolledInput() {
const inputRef = useRef(null);
const handleClick = () => {
alert('Input qiymati: ' + inputRef.current.value);
}
return (
<>
<input type="text" ref={inputRef} />
<button onClick={handleClick}>Qiymatni ol</button>
</>
);
}
Ularni tanlash kirish o'zgarishlariga darhol javob berish va mantiq murakkabligiga bog'liq. Boshqariladigan komponentlar murakkab shakllar va real vaqtda validatsiya uchun afzalroq. Boshqarilmaydiganlar oddiy shakllar yoki uchinchi tomon DOM kutubxonalar bilan integratsiya uchun mos keladi.