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.
Jako zadanie, którymi podsumujemy cały ten moduł.
Chciałbym, żebyś dodał jedno dodatkowe pole do naszego formularza.
Niech to będzie pole z adresem email.
Wiem, że totalnie nie obsługujemy takiego pola.
Możemy je sobie tutaj nawet nie wysyłać, pominąć value z ad person, ale z
perspektywy naszej aplikacji chciałbym, żebyśmy walidowali jeszcze adres email.
Adres email.
To będzie takie dodatkowe pole, o które możemy tak naprawdę rozwinąć naszą
aplikację kiedyś w przyszłości.
Jeśli chcesz iść gdzieś dalej z tą aplikacją, być może adres mailowy przyda
nam się do tego, żeby chociażby poinformować wszystkich jaka impreza ma
miejsce, że będzie to właśnie takie coś a'la Secret Santa, poinformować wszystkie
osoby plus dodatkowo poinformować ich w sekrecie kto komu kupuje prezent,
no i chociażby jaki mamy budżet.
Więc widzimy, że takie pole do dalszego rozwoju aplikacji by się nam przydało, A
jest to dla nas po prostu pretekst do tego, żeby przećwiczyć formika.
Więc tutaj zapauzuj teraz wideo i spróbuj dodać pole z adresem email oraz walidacją.
Zobaczmy.
Na początku nasz stan formularza będzie miał coś takiego jak email, czyli tutaj
formik będzie obsługiwał jeszcze dodatkowo coś takiego jak email.
Chcielibyśmy też to walidować.
Tutaj możemy to sobie zrobić w dokumentacji.
Zauważ, że jeżeli kliknę sobie tutaj w Docs, będę miał tutaj przykład
nawet z adresem email.
Możemy sobie to pożyczyć i tutaj if values email i chcielibyśmy to sobie walidować.
Czyli mamy sprawdzenie czy w ogóle email jest.
Później, jeżeli email jest, to chcielibyśmy sobie sprawdzić w jaki
sposób, czyli tutaj required, w jaki sposób został on wpisany i zwalidować,
czy wszystko jest poprawnie i później.
Jeżeli nie, to invalid email address.
I tutaj możemy sobie nazwać to pole Email is required.
Okej, część walidacyjną mamy za sobą, ale jeszcze nie widzimy pola, w którym
moglibyśmy ten adres email zapisać.
Zobacz, że musimy przekopiować całego tego field, a tutaj tak będzie najkorzystniej.
I podmienić tutaj te zapiski o email, czyli przede wszystkim name.
To jest email.
Zauważ, że type to też może być email.
Możemy coś takiego wrzucić z HTML'a 5 i teraz dodatkowo email
będziemy obsługiwać tutaj.
I oczywiście tutaj Values Earth.
Zobaczmy, czy jest wszystko poprawnie.
Mamy tutaj. Email.
Adres email.
Address is required.
Widzimy, że jeżeli wpiszemy poprawny adres email jest ok.
I tutaj możemy jak gdyby zobaczyć cały formularz.
Jeżeli go dodamy to wszystko jest w porządku i nie czyści nam się
tylko jeszcze to pole z mailem.
Zobaczmy sobie.
Tutaj mamy reset form.
Spróbujmy odświeżyć cały ten widok.
Ok, teraz wszystko jest w porządku, więc wystarczyło tylko odświeżyć widok.
Czyli pamiętaj o tym, że tutaj po zakończeniu zadania jeszcze odświeżamy
sobie tą stronę po to, żeby sprawdzić czy wszystko działa nam poprawnie.
Mamy tutaj personname i to jest nasze pierwsze pole, a drugie pole obsługuje
właśnie adres mailowy, ale to jest czysta analogia.
Czyli idziemy sobie analogicznie moglibyśmy sobie zrobić coś takiego.
Zauważ, że jest tu dobre pole do tego, żebyśmy zrobili sobie
jakiś odrębny komponent.
Ten komponent obsługiwał by właśnie zarówno errory przekazywane przez props
jak i tutaj onchange, blur i value.
Tak żebyśmy sobie uprościli cały ten zapis.
Czyli moglibyśmy sobie to enkapsulować w środku jakiegoś komponentu, który
nazwalibyśmy po prostu formfields i w ten sposób budowali sobie dalej formularze.