useEffect
React useEffect Hook
React useEffect Hooks
useEffect
Hook sizga komponentlaringizda yon ta'sirlarni bajarishga imkon beradi.
Yon ta'sirlarning ba'zi misollari: ma'lumotlarni olish, DOM-ni bevosita yangilash, va vaqt o'lchagichlar.
useEffect
ikkita argumentni qabul qiladi. Ikkinchi argument ixtiyoriy.
useEffect(<funksiya>, <qaramlik>)
Keling, vaqt o'lchagichni misol sifatida ko'rib chiqamiz.
Misol
setTimeout()
yordamida dastlabki renderdan 1 soniya o'tgach sanash:
Ammo kuting!! U sanashni davom ettiradi, garchi faqat bir marta sanashi kerak edi!
useEffect
har bir renderda ishlaydi. Demak, count
o'zgarganda render yuz beradi, bu esa boshqa ta'sirni ishga tushiradi.
Bu biz xohlagan holat emas. Yon ta'sirlarning qachon ishlashini nazorat qilishning bir necha yo'li mavjud.
Har doim ikkinchi parametrni kiritishimiz kerak, bu parametr massivni qabul qiladi. Bu massivga ixtiyoriy ravishda useEffect
-ga qaramliklarni uzatishimiz mumkin.
Misollar
- Hech qanday qaramlik uzatilmagan:
- Bo'sh massiv:
- Props yoki holat qiymatlari:
Shunday qilib, bu muammoni hal qilish uchun faqat dastlabki renderda bu ta'sirni ishga tushiramiz.
Misol
Faqat dastlabki renderda ta'sirni ishga tushiring:
Misol
Agar count
o'zgaruvchisi yangilansa, ta'sir yana ishga tushadi:
Agar bir nechta qaramlik bo'lsa, ularni useEffect
qaramliklar massiviga kiritish kerak.
Ta'sirni Tozalash
Ba'zi ta'sirlar xotira oqishini kamaytirish uchun tozalanishi kerak.
Vaqt o'lchagichlar, obuna bo'lish, hodisa tinglovchilar va boshqa kerak bo'lmaydigan ta'sirlar chiqarilishi kerak.
Buni useEffect
Hook oxirida qaytish funksiyasini qo'shish orqali amalga oshiramiz.
Misol
useEffect
Hook oxirida vaqt o'lchagichni tozalang:
E'tibor bering: Vaqt o'lchagichni tozalash uchun uni nomlashimiz kerak edi.
Last updated on