Sari la conținut
Dezvoltare FE—02

React în practică

Un curs pentru cei care deja scriu HTML și CSS și vor să construiască interfețe în React. Analizăm starea, hook-urile, datele de la server și rutarea, iar la final publicăm online un magazin funcțional, cu coș și plată.

12 module34 lecții
26 orede video și practică
Necesită HTML/CSScerințe
Pe viațăacces și actualizări
Format
€72 plată unică
Plasează comanda Deschide programa
Plată cu cardul sau prin PayPal
Accesul se deschide imediat după plată
Retur în 14 zile, dacă nu ai început să vizionezi
Rezultat

Ce vei putea face

Să construiești interfața din componente și să transmiți datele prin props
Să administrezi starea prin useState, useReducer și hook-uri proprii
Să încarci date de la server și să arăți încărcarea și erorile
Să configurezi rute, parametri de URL și pagini protejate ale aplicației
Să găsești randările inutile și să accelerezi listele grele
Să scrii teste de bază, să construiești proiectul și să îl publici online
Programa

12 module, un singur proiect

Apasă pe un modul ca să vezi lecțiile

01 Primele componente și JSX3 lecții · 2 h 16 minDeschis

Instalăm proiectul, ne orientăm în structura folderelor și în sintaxa JSX. Luăm macheta catalogului din cursul de HTML și CSS și o împărțim în componente care mai târziu cresc în magazin.

Construirea proiectului cu Vite și structura folderelor
JSX: structură, expresii și atribute
Împărțim macheta catalogului în componente
02 Props și compunerea componentelor3 lecții · 2 h 16 min

Învățăm să transmitem datele în jos pe arbore și să construim blocuri complexe din unele simple. Analizăm children, valorile implicite și granița dintre o componentă și setările ei.

Transmitem datele în componentă prin props
Children și sloturi: cardul de produs și fereastra modală
Valori implicite și verificarea datelor primite
03 Stare și hook-uri3 lecții · 2 h 17 min

Starea componentei, reacția la evenimente și efectele pentru lucrul cu lumea exterioară. Mutăm logica repetitivă în hook-uri proprii și analizăm greșelile frecvente legate de dependențe.

useState: cantitatea produsului și comutatoarele
useEffect și dependențele: sincronizarea cu lumea exterioară
Hook propriu: extragem logica repetitivă
04 Liste, chei și randare condiționată2 lecții · 1 h 34 min

Randăm catalogul dintr-un array, lămurim cheile și motivul pentru care lista «sare». Arătăm stările goale, filtrele și sortarea fără redesenări inutile.

Randarea catalogului prin map și chei
Stări goale, filtre și sortare
05 Formulare și validare3 lecții · 2 h 16 min

Câmpuri controlate, starea formularului și validare fără biblioteci externe. Construim un formular de comandă în mai mulți pași, cu mesaje de eroare clare și blocarea trimiterii repetate.

Câmpuri controlate și starea formularului
Validare și mesaje de eroare
Formularul de comandă: pași și trimitere
06 Date de la server3 lecții · 2 h 19 min

Cerem catalogul de la server: async/await, anularea cererilor expirate și cursa răspunsurilor. Adăugăm căutare și încărcare paginată fără a strica starea ecranului.

fetch și async/await: încărcăm catalogul
Anularea cererilor și cursa răspunsurilor
Căutare și încărcare paginată
07 Încărcare, erori și reîncercări2 lecții · 1 h 34 min

Cele două stări care se uită de obicei: cât timp se încarcă și când s-a stricat. Skeletoane, reîncercări, error boundary și mesaje pe înțelesul utilizatorului.

Skeletoane și indicatoare de încărcare
Erori ale cererilor, reîncercări și error boundary
08 Rutare3 lecții · 2 h 12 min

Împărțim magazinul pe pagini: catalog, produs, coș, comandă. Parametri de URL, rute imbricate cu layout comun, redirecționări și acces doar pentru utilizatorii autentificați.

Rute, linkuri și parametri de URL
Rute imbricate și layout comun
Pagini protejate și redirecționări
09 Starea comună a aplicației3 lecții · 2 h 21 min

Când props-urile nu mai ajung: context pentru temă și utilizator, useReducer pentru coș. Comparăm abordările și mutăm coșul într-un store extern, păstrat între sesiuni.

Context: temă, utilizator și limbă
useReducer: logica coșului într-un singur loc
Mutăm coșul într-un store extern
10 Performanță și randări repetate3 lecții · 2 h 16 min

Căutăm cauzele redesenărilor inutile în profiler și le reparăm. memo, useMemo și useCallback folosite la obiect, virtualizarea unui catalog lung și măsurători înainte și după.

De ce se randează o componentă: analiză în profiler
memo, useMemo și useCallback la obiect
Virtualizarea unei liste lungi de produse
11 Testarea scenariilor de bază3 lecții · 2 h 19 min

Scriem teste care verifică comportamentul, nu structura HTML. Clic pe buton, trimiterea formularului, adăugarea unui produs în coș și mock-uri pentru cererile de rețea.

Configurarea testelor și primul test de componentă
Testăm formularul și adăugarea în coș
Mock-uri pentru cereri și verificarea stărilor de încărcare
12 Build, deploy și proiectul final3 lecții · 2 h 20 min

Facem build-ul de producție, lămurim variabilele de mediu și dimensiunea bundle-ului. Terminăm plata comenzii, publicăm magazinul online și îl verificăm pe un domeniu real.

Build, variabile de mediu și dimensiunea bundle-ului
Plata comenzii și confirmarea
Deploy-ul magazinului și verificarea în producție
Materiale

Ce primești

Repository de start pentru magazin

Un proiect-șablon cu structura catalogului, machetele cardurilor și un API de practică, ca să începi din prima lecție fără configurarea mediului.

Checklist de code review pentru componentă

Lista verificărilor înainte de merge: structura props-urilor, efectele secundare, cheile din liste, tratarea erorilor, accesibilitatea și randările repetate.

Fișă de lucru pentru hook-uri

Fișe scurte cu semnături, greșeli tipice și exemple pentru useState, useEffect, useMemo, useCallback, useReducer și hook-uri proprii.

Analiza proiectului final

Implementarea de referință a magazinului, cu coș, plată și deploy, ca să îți compari soluțiile după predare și să discuți punctele discutabile.

Dediu Pavel
Autorul cursului

Dediu Pavel

Predă direcția «Dezvoltare web» la Forma. Lista completă a cursurilor este pe pagina autorului.

Toate cursurile autorului

Primul modul este deschis în întregime

Urmărește lecțiile primului modul și prima temă. Dacă formatul nu ți se potrivește, nu ai pierdut nimic.