od Podstaw
5 godz. 59 min · ReactJS · Full-stack i Programowanie
Michał JabłońskiReact przeszedł długą ścieżkę rozwoju i część z jego funkcjonalności nie są już powszechnie używane. Dlatego w tym kursie skupimy się na najnowszych technikach pracy z biblioteką - poznasz współczesne podejście do budowania komponentów z wykorzystaniem hooks (useState, useEffect), zrozumiesz zasady kompozycji i zarządzania stanem aplikacji. Pokażemy Ci też jak efektywnie korzystać z narzędzi deweloperskich, debugować kod i wdrażać aplikacje na produkcję z użyciem współczesnych platform jak Vercel.
Hooki to fundament nowoczesnego Reacta, który całkowicie zmienił sposób tworzenia komponentów. W kursie nauczysz się efektywnie zarządzać stanem aplikacji używając useState, wykorzystywać useEffect do operacji lifecycle i side-effects, oraz poznasz reguły korzystania z hooków. Wszystko to przećwiczysz w praktycznych zadaniach, takich jak implementacja filtrowania listy elementów, gdzie zastosujesz zdobytą wiedzę w realnym scenariuszu.
Obsługa formularzy to nieodłączny element każdej aplikacji webowej. Pokażemy Ci jak kontrolować wartości pól input, wykorzystać popularną bibliotekę Formik do zarządzania złożonymi formularzami oraz implementować walidację danych. Wiedza ta zostanie utrwalona poprzez praktyczne zadanie, w którym rozwiniesz formularz o dodatkowe pola i zastosujesz poznane techniki w rzeczywistym przypadku użycia.
Większość aplikacji wymaga komunikacji z serwerem. Nauczysz się jak poprawnie wykonywać operacje asynchroniczne w komponentach React, obsługiwać stany ładowania i błędów, oraz efektywnie korzystać z klienta HTTP do zapytań AJAX. Zaczniesz od pracy z przygotowanym mockiem API, by następnie przejść do prawdziwej integracji z back-endem. W praktycznym zadaniu zaimplementujesz pełny przepływ danych - od pobrania, przez wyświetlenie, aż po wysłanie na serwer.
Poza budową aplikacji React, w kursie znajdziesz także moduł poświęcony wdrażaniu aplikacji na produkcję. Poznasz prawidłową konfigurację serwera produkcyjnego dla architektury SPA, nauczysz się zarządzać zmiennymi środowiskowymi poprzez pliki .env oraz przeprowadzisz deployment na platformie Vercel. Dzięki temu Twoja aplikacja będzie nie tylko działać lokalnie, ale także będzie gotowa do użycia przez realnych użytkowników w internecie.
Nowoczesny React stworzyliśmy z myślą o osobach, które chcą nauczyć się Reacta i jednocześnie znają JavaScript. Niezależnie od tego, czy React jest Twoim pierwszym frameworkiem, czy masz już doświadczenie w pracy np. ze Svelte czy Vue, ten materiał jest dla Ciebie. Wskazane jest również posiadanie ogólnej wiedzy na temat tworzenia interfejsów z HTML i CSS oraz obsługi narzędzi takich jak Git czy podstawy pracy z terminalem.
Jeśli spojrzymy sobie krytycznie na to, w jaki sposób działa nasz routing,
zauważymy, że jest jeden problem. Otóż to.
Menu cały czas się zamyka, dlatego, że gubimy stan.
Widać to również na przeglądarce, ponieważ odświeżamy ją cały czas, czyli w momencie,
gdy ją odświeżymy, jak gdyby gubimy cały stan.
Cała nasza aplikacja jak gdyby zaczyna działać od początku.
Standardowo takie działanie by nam nie przeszkadzało.
Natomiast jeżeli chcemy mieć client side application, tak gdzie działa tzw.
architektura single page application, czyli spa, no to to
działanie jest niepożądane.
Nie chcielibyśmy, żeby właśnie tak to działało.
Powodem jest natywne działanie linków.
Otóż link stara się działać tak, jak został do tego przystosowany.
Czyli jeżeli mamy href to odprowadza nas na zupełnie inną stronę.
Ta strona po prostu może być jakimś katalogiem podkatalogiem na serwerze HTTP
i wtedy zaserwowana jest kolejna porcja HTML.
A jeśli cokolwiek zostanie na serwerze odnalezione.
Tutaj nie wychodzimy zupełnie poza ramy naszej przeglądarki, czyli nie wychodzimy
do serwera i nie chcemy przeszukiwać serwera, nie chcemy wysyłać zapytań,
raczej zostajemy po stronie klienta i do tego posłuży nam specjalny
komponent, który nazywa się Navlink.
Navlink dostarczony jest przez React router Dom.
Wtedy musimy go zmienić po prostu na tu.
I to jest nasz required attribute. Zobacz.
Gdybyśmy zapomnieli to zrobić, dostanę tutaj informację zwrotną.
Don't have required attribute to.
I tylko taka zmiana wystarczy nam do tego poprawiona właśnie w naszym navbaritem,
żebyśmy mogli sobie teraz wykorzystać routing i nie refreshować strony.
Czyli można sobie wyobrazić, że Navlink to taki komponent, który wykona
za nas zadanie PreventDefault.
Czyli gdybyśmy natywny link chcieli ograniczyć tylko do tej właśnie własności,
gdzie chcielibyśmy korzystać z tego naszego clientside routingu.
Musielibyśmy użyć Event PreventDefault w handler do onClick dla naszego ancora,
który był tutaj wcześniej na Link2.
To jest jeden z elementów, który musimy użyć, jeśli chcemy, żeby pozostać właśnie
w tej architekturze single player application.
Gdybyśmy sobie wyobrazili formularz, no to mamy kolejna rzecz, która natywnie
działająca w przeglądarce nie może zostać pozostawiona tak samo w OnSubmit.
Mielibyśmy event PreventDefault.
Tutaj nowy link posłuży nam do tego, żeby jeszcze oznaczyć klasę is active.
Czyli nowy link ma jeszcze specjalną cechę, że className.
W React routerze ten react router domClassName może być podany jako funkcja.
Czyli gdybyśmy sobie tutaj wrzucili funkcję i zrestrukturyzowali is active.
Dostajemy informację zwrotną, czy ścieżka, na której teraz jesteśmy jest aktywna i
możemy tą informację wykorzystać w bulmie.
Gdybyśmy do każdego elementu dodali is active, to wszystkie byłyby podświetlone.
Natomiast chcemy tylko dodać do tego, który faktycznie jest aktywny.
Wiemy już, że classnames nam w tym pomoże i możemy sobie tutaj
navbaritem dodać tak jak było.
Natomiast w obiekcie z polem is active jest active to nasze property,
a tutaj to jest active.
Będzie oznaczało, która ścieżka jest w danym momencie aktywna w tym układzie.
Zauważ, że dostajemy bardzo fajną stronkę, gdzie podświetlana jest strona, na
której aktualnie się znajdujemy.
Możemy tutaj dla takiego jeszcze efektu wizualnego dorzucić sobie, żeby to nasze
menu miało delikatny odstęp margin bottom na przykład 2.
I wtedy mamy już bardzo fajnie funkcjonujące menu razem z naszą stroną i
podświetlaniem właśnie aktywnej ścieżki jesteśmy na Exchange.
Zobacz Exchange is active.
Jesteśmy na People, czyli mamy tą podstawową ścieżkę i ona jest aktywna,
więc zostanie podświetlona tutaj w naszym menu.