Cerinte prealabile
Pentru dezvoltarea aplicației de frontend vom folosi biblioteca React.js și vom lucra in limbajul TypeScript. Typescript este un limbaj de scripting, un dialect mai tare tipat a lui JavaScript. Recomandăm folosirea limbajului TypesScript în loc de JavaScript din mai multe motive:
- Preîntampină multe erori la runtime dacă sunt folosite tipuri de date în mod incorect ca intr-un context slab tipat.
- E mai usor de modificat și întretinut codul întrucat se pot cunoaște dependente de date acolo unde se folosește un anumit tip de date.
- Tipurile de date servesc și ca documentație pentru cei care vor folosi codul.
Dacă nu sunteți familiarizati cu JavaScript/TypeScript parcugeți introducerea în TypeScript.
Unelte
Înainte de a începe dezvoltarea efectivă, va trebuie să pregătiți următoarele:
- Să instalați o versiune LTS de Node.Js (versiunea 18)
- Să vă instalați un IDE pentru aplicații web: VSCode sau WebStorm, pentru VSCode este necesar să intalați plugin-uri pentru HTML, JavaScript/Typescript, React.js si Node.Js, la WebStorm acestea sunt deja incluse.
📄️ Introducere în TypeScript
Vom face o scurtă prezentatare a limbajului TypeScript pentru a dezvolta aplicații de frontend. Modul de lucru cu Typescript este în mare același ca cu JavaScript dar beneficiază de faptul că sintaxa este constrânsă de tipurile de date declarate. Existența tipurilor de date, chiar dacă în acest caz sunt verificate doar la faza de transpilare (transpiling) unde codul de TypeScript este transformat în cod normal de JavaScript, ajută dezvoltatorii în a omite greșeli frecvente în limbaje slab tipate. Vom trece prin sintaxa specifică de TypeScript, pentru cei familiarizați cu limbaje C-like și orientate pe obiect sintaxa este ușor de învașat însă diferă în modul de utilizare față de aceste limbaje.
📄️ Introducere în Node.Js și React.js
Ce este React.js?
📄️ HTML și CSS în contextul React
HTML
📄️ Comunicarea între componente și rutare
Comunicare între componente
📄️ Material UI
Material UI este o bibliotecă de componente pentru React, care oferă o colecție de componente UI pre-stilizate pentru a ajuta la crearea de interfețe utilizator moderne și atractive. Aceste componente sunt bazate pe stilurile și principiile de design ale Google Material Design, care au fost dezvoltate pentru a oferi un aspect coerent și familiar aplicațiilor web și mobile.
📄️ Asincronicitate in React
Ce este asincronitatea și de ce este importantă în React?
📄️ ReactQuery
Ce este ReactQuery?
📄️ OpenAPI Generator
Ce este OpenAPI?
📄️ Gestionarea stării
În această secțiune vom intra în detaliu legat de gestionarea stării aplicației folosind funcții hook și Redux Toolkit. Motivul pentru care este nevoie de gestionarea stării aplicației este că anumite componente în diferite locații ale aplicației au nevoie să împartă aceleași date. O posibilitate pentru a propaga datele la mai multe componente este ca o compenta părinte să trimită la descendenții săi datele prin proprietăti din copil în copil, însa această abordare poate aglomera componentele și duce la cod greu de menținut. Alternativa cea mai bună este ca datele partajate de diferite componente să fie puse la dispoziție printr-o stare globală accesibilă prin funcții hook.
📄️ Formulare
De multe ori o să aveți nevoie de a crea formulare pentru a adăuga/modifica date pe backend. In HTML aveți multe elemente care funcționeaza ca input-uri pentru formulare, de exemplu select, textbox, checkbox etc. Pentru React bibliotecile de UI cum sunt Material UI expun aceste input-uri deja stilizate si cu atribute care va pot ajuta pentru a controla componentele respective.