This is an old revision of the document!
Laboratorul 10: React Router & Request-uri HTTP
Premisa
In cadrul acestui laborator, vom accesa backend-ul creat la
Laboratorul 6.
1. React Router
React Router DOM este un API creat pentru React pentru a “simula” un browser history pentru aplicatia noastra. Deoarece aplicatia noastra este un Single Page Application (SPA), browser-ul nostru nu navigheaza prin fisiere html.
1.1. Instalare React Router
Pentru a instala react-router-dom trebuie sa executam urmatoarea comanda:
npm install react-router-dom
1.2. Utilizarea React Router
Utilizarea React Router-ului se realizeaza in 3 pasi:
Schimbarea continutului dinamic se realizeaza prin folosirea componentei <Link> din react-router-dom
2. Axios si Request-uri HTTP
Axios este o biblioteca JavaScript folosita pentru a face Request-uri HTTP din Node.Js sau XMLHttpRequest din browser, cerinta principala fiind compatibilitatea cu ES6 Promise API.
2.1. Caracteristici principale
2.2. Instalare axios
2.3. HTTP Get
2.4. HTTP Post
2.5. HTTP Put
2.6. HTTP Delete
Exercitii
Creati o componenta Login care sa contina un formular cu doua campuri text si un buton de Submit.
Componenta Login va fi responsabila de a trimite un request de tip POST catre
API, avand in body datele necesare autentificarii utilizatorului.
{
username: "admin",
password: "admin"
}
Raspunsul primit de la server trebuie sa contina token-ul JWT. Stocarea token-ului se face in browser, folosind localStorage.
Stocare token in localStorage
localStorage.setItem("token", jwt_token);
Citirea token-ului din localStorage
localStorage.getItem("token")
Creati doua componente, Book si Author, care sa afiseze detaliile despre fiecare carte, respectiv autor.
Creati o componenta BooksList care sa contina o lista cu toate cartile existente, respectiv AuthorsList care sa contina o lista cu toati autorii existenti in baza de date. Pentru afisarea tuturor cartilor, respectiv autorilor, se vor folosi componentele create anterior, Book si Author. Stilizarea nu reprezinta o prioritate, de aceea puteti sa fiti inventivi.
Componentele BooksList si AuthorsList trebuie sa trimita cate un request de HTTP Get pentru a aduce toate intrarile din baza de date.