⊗jsrtPmHkAMe 15 of 47 menu

React-də API memo

Növbəti hook-u nəzərdən keçirməzdən əvvəl, bizə komponentin propları dəyişməz qaldıqda təkrar render etməməyimizə kömək edən faydalı memo API-sını da qeyd etmək lazımdır.

Gəlin bunu bir nümunə ilə izah edək. Gəlin iki inputun olduğu App komponenti yaradaq, fərz edək ki, onlara ad və soyad daxil edilir:

return ( <div> <label> ad: <input value={name} onChange={(e) => setName(e.target.value)} /> </label> <br /> <label> soyad: <input value={surn} onChange={(e) => setSurn(e.target.value)} /> </label> </div> );

Komponentin əvvəlində onlar üçün state-lər əlavə edək:

const [name, setName] = useState(''); const [surn, setSurn] = useState('');

Gəlin Child.js adlı bir uşaq komponenti də edək, qoy o, daxil edilən adın göstərildiyi bir salamlamanı çap etsin. Həmçinin, hər dəfə bu komponent render olanda konsola 'child render' sətri çap olunsun:

function Child({ name }) { console.log('child render'); return <h3>Salam {name}!</h3>; }

Gəlin Child-ı əsas komponentin son inputdan sonra verstkasına əlavə edək və ona prop kimi adı ötürək:

<Child name={name} />

Gəlin onu əsas komponentə import edək:

import Child from './Child';

İndi isə konsolu açaq və input sahələrinə ad və soyadı daxil edək. Burada görəcəyik ki, soyad sahəsinə simvollar daxil edərkən belə, bizim uşaq komponentimiz hər dəfə yenidən çəkilib. Heç bir problem yoxdur, axı bizim kiçik bir komponentimiz var. Amma təsəvvür edin ki, bu komponent böyük miqdarda məlumat göstərirdi və eyni zamanda hər dəfə yenidən çəkilirdi.

İndi isə gəlin uşaq komponentini memo ilə əhatə edək və render etmənin necə dəyişdiyinə baxaq. Əvvəlcə ona memo import edək:

import { memo } from 'react';

Sonra yeni bir dəyişən yaradaq və ona memo ilə əhatə olunmuş bizim Child-ı təyin edək. Bizdə aşağıdakı funksional ifadə alınacaq:

const Child = memo( function Child({ name }) { console.log('child render'); return <h3>Salam {name}!</h3>; });

Konsolu açaq və yenidən ad və soyadı sahələrə daxil edək. İndi görürük ki, soyadı daxil edərkən bizim uşaq komponentimiz yenidən çəkilmir.

Yadda saxlamalıyıq ki, bu, dəyişməz proplar olanda komponent tərəfindən istifadə edilən state-lər və ya dəyişikliklər istifadə edən kontekst dəyişərsə işləməyəcək.

Bu dərsdə etdiyimiz App komponentinin kodunu götürün, onda yalnız birinci inputu saxlayın. 'long text' mətnini olan abzası ehtiva edən React komponenti Text yaradın və onu App-da inputdan sonra yerləşdirin.

Text komponentində console.log('text render'); sətrini əlavə edin. Əmin olun ki, inputa simvollar daxil edərkən Text komponenti hər dəfə yenidən çəkilir.

İndi isə Text komponentini memo ilə əhatə edin. Əmin olun ki, inputa simvollar daxil edərkən Text komponenti təkrar yenidən çəkilmir.

Azərbaycan
AfrikaansБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Biz saytin işi, analitika və fərdiləşdirmə üçün cookie istifadə edirik. Məlumatların emalı Məxfilik Siyasəti əsasında həyata keçirilir.
hamısını qəbul et konfiqurasiya et rədd et