Bilamizki, useEffect — bu React hook bo‘lib, u komponentda yon ta’sirlar (side effects)ni bajarish uchun ishlatiladi.

Diqqat qiling: useEffect - bu side effect deyilmayapti, balki side effectlarni bajarish uchun vositadir. Man buni hozirgina maqola yozayotganimda payqab qoldim. Bungacha esa useEffectni o‘zi side effect deb noto‘g‘ri tushunib yurgan ekanman.

Hop, unda side effects - yon ta’sirlarni o’zi nima? Bu haqda ChatGPT’dan so’raganimda, quyidagicha javob oldim:

image.png

Javobni o‘qiyotib, meni bir narsa e’tiborimni tortdi.

Mening e’tiborimni tortgan narsa - console.log Axir bu biz har doim xatoliklarni aniqlash (debug) qilishda foydalanadigan console.log-ku, dedim. Demak, console.log ham side effect — yon ta’sir hisoblanadi. Shunda tushundimki, side effectlar nafaqat React’da, balki JavaScript’ning o‘zida ham mavjud. Hatto bundan ham kengroq qarasak, side effectlar faqat React yoki JavaScript bilan cheklanmaydi — ular deyarli barcha dasturlash tillarida uchraydi.

Keling, avvalo 'side effect' tushunchasi JavaScript’da qanday bo‘lishini, keyin esa React’da qanday qo‘llanilishini o‘rganamiz.

Side Effect JavaScript tilida nima o‘zi? Oddiy qilib aytganda, side effect — bu funksiyaning asosiy vazifasidan tashqari yana biror narsa qilishi demakdir.

Misol:

function add(a, b) {
  console.log(a + b); // bu side effect
  return a + b;
}

Bu yerda add funksiyasi ikkita sonni qo‘shib beradi — bu uning asosiy vazifasi. Ammo u yana console.log() orqali qiymatni konsolga chiqarayapti. Bu esa uning “yon ish”i, ya’ni side effect.

Yana ba’zi oddiy misollar:

Bu harakatlarning barchasi tashqi muhitga ta’sir ko‘rsatadi yoki tashqi muhitdan ta’sir oladi. Mana shuning uchun ular side effect hisoblanadi.

Yon ta’sirsiz (pure) funksiyalar haqida

Shu o‘rinda pure function degan tushunchani ham eslatib o‘tish kerak. Yon ta’sirsiz (pure) funksiyalar — bu: