Təkrarlanan interfeys problemləri üçün hazır, sınanmış həllərdən istifadə etmək kodu bölüşməyə kömək edir. Kitabxana müəyyən imkanlar verir, framework isə tətbiqin quruluşu üçün daha geniş çərçivə təklif edir. React interfeysi komponentlərdən təsvir etməyə kömək edən kitabxanadır.
JSX HTML-ə bənzəyən JavaScript sintaksisidir və build zamanı çevrilir. İfadələr fiqurlu mötərizəyə yazılır; teqləri bağla, bir kök element və ya fragment qaytar. CSS sinfi üçün className, label əlaqəsi üçün htmlFor istifadə et. HTML elementləri kiçik, komponent adları böyük hərflə başlayır.
React elementi görünüşün təsviridir, DOM elementi isə brauzerdəki real düyündür. React yeni təsviri əvvəlki ilə müqayisə edib uyğun DOM yeniləmələrini tətbiq edir. Bu model adətən Virtual DOM anlayışı ilə izah olunur; hər render bütün DOM-un yenidən yaradılması deyil. Nümunəni React üçün qurulmuş təlim layihəsində və ya uyğun onlayn redaktorda sına.
Əlavə qeydlər və mənbələr
Kitabxana və framework anlayışlarını fərqləndir, React-in interfeysi məlumatdan təsvir etməsini öyrən. JSX HTML-ə bənzəyən JavaScript sintaksisidir; ifadələri fiqurlu mötərizə içində yerləşdir.
Niyə vacibdir?
Komponentlər və state mürəkkəb interfeysin hissələrini idarə etməyə kömək edir.
React komponenti JSX qaytaran funksiyadır. Props valideyndən gələn məlumat, state isə komponentin yadda saxladığı vəziyyətdir. State dəyişəndə React görünüşü yeniləyir.
import { useState } from 'react';
export default function Counter() {
const [count, setCount] = useState(0);
return <button onClick={() => setCount(c => c + 1)}>
Say: {count}
</button>;
}
Nümunə
Massiv və obyekt state-ini birbaşa dəyişmə; yeni dəyər yarat və setter-ə ötür. Bir məlumatı bir neçə komponent istifadə edirsə, onu ən yaxın ortaq valideyndə saxlamaqdan başla.
Props, formalar və siyahılar
Props komponentin girişidir, state onun dəyişən yaddaşıdır. İdarə olunan input state-dən value alır və onChange ilə yenilənir. Checkbox üçün checked istifadə et. JSX-də label-ı htmlFor ilə sahənin id dəyərinə bağla.
Sabit ID elementin kimliyini saxlayır. Element əlavə edilən və silinən siyahılarda indeksi key kimi seçmə. filter ilə sil, map və yeni obyektlə yenilə. Yüklənmə, xəta və boş nəticəni ayrıca render et; rəqəm sıfır ola bilərsə count > 0 && ... kimi açıq şərt yaz.
Həyat dövrü və Effect təmizlənməsi
Əvvəlki nümunələrdə sinif komponentlərinin render, this.props, this.state, setState, componentDidMount və componentWillUnmount API-ləri də var. Bunlar mövcud layihələri oxumağa kömək edir. Yeni nümunələrdə funksiya komponentləri və Hook-larla başla. Sinifdəki setState obyektin bəzi xassələrini birləşdirə bilər, useState setter-i isə bütün dəyəri əvəz edir.
Effect xarici sistemlə sinxronlaşma üçündür. Dinləyicini sil, taymeri dayandır və effect-in oxuduğu reaktiv dəyərləri asılılıqlarda göstər. Cleanup yenidən sinxronlaşmadan əvvəl və unmount zamanı işləyə bilər. State yeniləməsi cari renderdəki dəyişəni dərhal dəyişmir.
Client routing
SPA-da URL-dən asılı olaraq interfeysin hissəsi dəyişir. React Router-in deklarativ rejimində BrowserRouter, Routes, Route və Link ilə marşrut qurmaq olar. /products/:id yol parametri, ?search=... isə query parametridir. Aşağıdakı müasir nümunə react-router paketindən istifadə edir; Əvvəlki köhnə versiyanın import və prop-larını bununla qarışdırma.
Bu ayrıca React təlim layihəsi üçündür; roadmap.az-ın Astro marşrutlaşdırmasını əvəz etmir. SPA yayımlayanda birbaşa alt URL açılışı üçün hosting fallback-ını da qur. Keçidləri, Geri düyməsini və səhifəni yeniləməyi yoxla.
Ortaq vəziyyət və Redux
Əvvəl state-i ən yaxın ortaq valideynə qaldır. Ayrı hissələrin mürəkkəb ortaq state-ə ehtiyacı olduqda Redux-u qiymətləndir. Store vəziyyəti saxlayır, action baş verəni bildirir, reducer yeni vəziyyəti hesablayır. Əvvəlki klassik createStore və connect nümunələrinin müasir qarşılığı Redux Toolkit və React-Redux Hook-larıdır.
Komponent ağacını react-redux paketinin <Provider store={store}> elementi ilə əhatə et; useSelector(state => state.cart.items) ilə oxu və useDispatch() nəticəsinə action ötür. createSlice daxilində mutasiya kimi görünən yazını Immer dəyişməz yeniləməyə çevirir. Bu qayda adi React state-də birbaşa mutasiyaya icazə vermir.
Mövzu üzrə praktika
Tapşırıq siyahını React ilə yenidən qur. Forma, filtr və tapşırıq sətri üçün ayrı komponentlər yarat.
Əlavə, silmə və filtr işləyir; state birbaşa dəyişdirilmir və konsolda key xəbərdarlığı yoxdur.