React useState Hook
React useState
Hook bizga funktsiya komponentlarida holatni (state) kuzatishga imkon beradi.
Holat odatda ilovada kuzatilishi kerak bo'lgan ma'lumotlar yoki xususiyatlarga ishora qiladi.
useState-ni Import Qilish
useState
Hook-dan foydalanish uchun avval uni komponentga import qilishimiz kerak.
Misol:
Komponentning yuqori qismida useState
Hook-ni import qiling.
E'tibor bering, biz useState
-ni React-dan destructuring orqali import qilmoqdamiz, chunki bu nomlangan eksport.
Destructuring haqida batafsilroq ma'lumot uchun ES6 bo'limiga qarang.
useState-ni Inicializatsiya Qilish
Holatni useState
yordamida inicializatsiya qilamiz.
useState
dastlabki holatni qabul qiladi va ikkita qiymatni qaytaradi:
- Joriy holat.
- Holatni yangilaydigan funksiya.
Misol:
Holatni funktsiya komponentining yuqori qismida inicializatsiya qiling.
E'tibor bering, yana useState
-dan qaytarilgan qiymatlarni destructuring orqali olishamiz.
Birinchi qiymat, color
, joriy holatimizdir.
Ikkinchi qiymat, setColor
, holatni yangilash uchun ishlatiladigan funksiyadir.
Bu nomlar o'zingiz xohlagancha nomlanishi mumkin.
So'ngra, dastlabki holatni bo'sh satrga o'rnatamiz: useState("")
Holatni O'qish
Holatni komponentimizda istalgan joyda ishlatishimiz mumkin.
Misol:
Holat o'zgaruvchisidan render qilingan komponentda foydalaning.
Holatni Yangilash
Holatni yangilash uchun holat yangilovchi funksiyamizdan foydalanamiz.
Holatni bevosita yangilash tavsiya etilmaydi. Masalan: color = "red"
ishlatilmaydi.
Misol:
Holatni yangilash uchun tugma foydalaning:
Holat Nimalarni Saqlashi Mumkin
useState
Hook matnlar, sonlar, booleanlar, massivlar, ob'ektlar va ularning har qanday kombinatsiyalarini kuzatish uchun ishlatilishi mumkin!
Biz bir nechta holat Hooks yaratib, individual qiymatlarni kuzatishimiz mumkin.
Misol:
Bir nechta holat Hooks yarating:
Yoki, bitta holatni yaratib, o'rnatilgan ob'ektni ishlatishimiz mumkin!
Misol:
Bitta Hook yaratib, ob'ekt saqlang:
Hozir biz bitta ob'ektda holatni kuzatmoqdamiz, shuning uchun komponentni render qilishda ob'ektni va uning xususiyatlarini ko'rsatishimiz kerak. (Masalan: car.brand
)
Ob'ektlar va Massivlarni Holatda Yangilash
Holat yangilanganda, butun holat yangilanadi.
Agar faqat mashinamizning rangini yangilamoqchi bo'lsak, nima qilishimiz kerak?
Agar faqat setCar({color: "blue"})
chaqirilsa, bu holatimizdan brand, model va yilni olib tashlaydi.
JavaScriptning spread operatoridan yordam olamiz.
Misol:
Mashinaning faqat rangini yangilash uchun spread operatoridan foydalaning:
Joriy holat qiymatini olishimiz kerak bo'lgani uchun, setCar
funksiyasiga funksiya uzatamiz. Bu funksiya oldingi qiymatni oladi.
Keyin ob'ektda oldingi holatni tarqatamiz (spread
), va faqat rangni yangilaymiz.