od Podstaw
4 godz. 55 min · ReactJS · Full-stack i Programowanie
Adam RomanskiFrontend developer & YouTube CreatorWszystkie tresci podzielilem na piec rozdzialów, w których bedziemy rozwijac wymyslona przeze mnie aplikacje sluzaca do kolekcjonowania najciekawszych artykulów, notatek oraz kont twitterowych znalezionych w sieci.
Zaczniemy od prostych widoków, na podstawie których wyjasnie Ci, co stoi u podstaw Reacta – dowiesz sie czym jest JSX, oraz poznasz pojecie komponentu funkcyjnego. Dzieki temu oswoisz sie ze skladnia Reacta, która poczatkowo moze wydawac sie nieco obca.
W React niemal wszystko opiera sie o komponenty. Czym one sa? Dowiesz sie tego w drugim rozdziale. Opowiem Ci jak je tworzyc oraz jak tworzyc relacje miedzy nimi. Wyjasnie Ci bardzo szczególowo jak dzialaja propsy oraz w jakich sytuacjach nalezy je wykorzystywac. Zobaczysz tez, jak w Reactcie pracujemy z danymi, jak mozemy je przetwarzac a nastepnie stosujac kilka strategii stylowania komponentów, wszystko wyswietlic w atrakcyjny sposób.
W trzecim rozdziale poznasz sposób konstruowania komponentów klasowych, posiadajacych wlasny stan, dzieki któremu stworzysz miedzy innymi dynamiczny, inteligentny formularz, a takze wiele innych interaktywnych elementów. Dzieki temu szybko zrozumiesz róznice miedzy komponentami funkcyjnymi a klasowymi.
Kiedy juz poczujesz sie dosc pewnie budujac komponenty, dodamy tzw. routing w rozdziale czwartym, który pozwoli nam na stworzenie wielu podstron, które urozmaica nasza aplikacje – dowiesz sie dzieki temu jak integrowac dodatkowe narzedzie w naszym projekcie, oraz jak budowac bardziej skomplikowana strukture aplikacji.
Na sam koniec zostaimy sobie tzw. state managment, czyli zarzadzanie informacjami wspóldzielonymi przez wiele komponentów i podstron. Nie wykorzystamy jednak ani Reduxa ani Mobxa, poniewaz chce Ci pokazac, ze w samym Reactcie kryje sie ogromny potencjal nawet przy tak kompleksowych zadaniach. W tym przypadku uzyjemy Context API, który w latwy sposób pozwala nam teleportowac dane z jednego miejsca naszej aplikacji do drugiego. Podczas rozbudowywania naszej aplikacji o Context API dopracujemy tez wszystkie inne jej elementy, aby na samym koncu kursu wydeployowac nasz gotowy produkt w serwisie Netlify – zobaczysz, ze wypuszczenie aplikacji Reactowej do sieci i udostepnienie jej innym, jest niezwykle proste.W tym kursie skupiamy sie wylacznie na Reactcie z uzyciem jedynie niezbednych narzedzi. Wierze, ze doskonale opanowanie fundamentów, na których opiera sie ta technologia pozwoli Ci pózniej latwiej wkroczyc w swiat setek pluginów i paczek dostepnych w jego ekoystemie.
Ten kurs powstal z mysla o osobach chcacych zaczac swoja przygode z frameworkami JavaSript. Zaklada on wiedze na temat podstaw JavaScript (w tym ES6), jednak przy bardziej skomplikowanych rozwiazaniach zawsze pojawia sie slowo wyjasnienia. \n\nPoziom kursu zostal dopasowany do osób, które maja za soba juz kilka projektów w czystym JavaScript i chca wejsc na wyzszy poziom, przygotowujac sie tym samym do pracy z ta technologia.
Cześć, pewnie już nie możesz się doczekać, aż odpalimy edytor kodu i zaczniemy pisać coś
w React'cie, ale zanim to zrobimy, chciałbym zrobić takie krótkie wprowadzenie i
odpowiedzieć na jedno podstawowe pytanie. Czym jest React? W najprostszych
słowach React jest biblioteką do tworzenia interfejsów, ale jest to dość
ogólny termin i tak naprawdę ciężko to zrozumieć, jeśli nie wejdziemy trochę w głąb i
nie dowiemy, co tworzy w React'cie te interfejsy, bo Jeśli spojrzymy
sobie taki interfejs, ale na razie pomówmy o tym klasycznym, napisanym w
HTML'u, to mamy tutaj takie elementy, jak header, jak H1, jak p,
jak button i zawsze tego typu elementy tworzyły taką
jedną indywidualność, czyli nie był to button, który
na przykład wykorzystujemy w wielu miejscach, no chyba że nadawaliśmy mu jakąś klasę, ale
wtedy jego wygląd był tylko ograniczony właśnie jakiejś klasy. Natomiast samo
działanie i tak musiało aplikowane do każdego button'a osobno. Nawet
jeśli wykorzystywały tę samą funkcję. Mam nadzieję rozumiesz o co mi chodzi,
że ta logika stosowana była tylko i wyłącznie do jednej
instancji jakiegoś button'a. jakiegoś header'a, jakieś karty
czy div'a. Wszystko traktować można było jako taką odrębną, jedną
rzecz. Natomiast w React'cie to się zmieniło i nastała taka prawdziwa rewolucja,
ponieważ powstały tak zwane komponenty i jak widzisz, w tych znacznikach nie mamy już
czegoś takiego jak H1, H2, p, div i tak dalej. Mamy
nazwy własne, tak jak Hero jak, Heading, jak Card i te
komponenty faktycznie zawierają dalej takie rzeczy, jak buttton'y, jak H1.
Niemniej, można je reużywać, czyli można stosować
jeden komponent w wielu miejscach naszej aplikacji i to jest tak naprawdę podstawowe
działanie React'a. To w taki właśnie sposób tworzymy interfejsy w React'cie. Tworząc
komponenty, które następnie możemy reużywać w wielu miejscach naszej
aplikacji. Jeśli spojrzymy sobie, na przykład, na taki button, to
tak jak mówiłem wcześniej, w HTML'u ten button mógł mieć klasę, która odnosiła
się do jego indywidualnego stylu. Mógł mieć jakąś logikę, która była zaaplikowana,
ale już tak bezpośrednio przez JavaScript. Po prostu nawiązywał
ten button, powiedzmy, do jakiejś funkcji. Natomiast w komponencie React'owym,
takim jak na przykład button. Zauważ, że jest on pisany wielką literą. Wszystko,
co odnosi się do tego button'a możemy zamknąć właśnie wewnątrz tego komponentu, czyli
może mieć on własny HTML. Tutaj w cudzysłowie, ponieważ tak na prawdę w React'cie używamy
JSX, ale tym opowiem ci już w samym kursie. Ten button może mieć
też własną logikę. On się może zachowywać w jakiś odpowiedni sposób, wyłącznie
dla niego. Nie mniej możemy później ten button właśnie użyć w kilku miejscach aplikacji
i każdy tych button'ów będzie zachowywał się tak samo. To jest bardzo przydatne i
to też zobaczysz podczas trwania kursu. No i oczywiście może mieć też
własny indywidualny styl, ale to było osiągalne również poprzez nadawanie odpowiednich
klas. Zresztą w React'cie działa to bardzo podobnie. To, co jest charakterystyczne
dla takiej biblioteki jak jak React to to, że mamy jakiś jeden główny komponent, root'owy
komponent jak nazywamy i wewnątrz tego komponentu, mamy inne komponenty.
Rendereujemy je w taki sposób, że wpisujemy je wewnątrz tego komponentu. Na
przykład mamy Header, który zawiera takie rzeczy jak Button, czy Title. Mamy
też Card, który może zawierać również instancje własnego button'a i w ten sposób
powstaje tak zwane drzewo komponentów, które następnie renderujemy do
naszego pliku html i tak powstaje aplikacja React'owa. W tej chwili może
to wydawać się dość enigmatyczne i skomplikowane. Natomiast zobaczysz, że
tworzenie tego typu struktur wcale nie jest tak skomplikowane i można tego
się dość szybko nauczyć. Zresztą zrobię wszystko, żeby ci w tym pomóc, ale odpowiedzmy
sobie na jeszcze jedno dość ważne pytanie, ponieważ ono często pada gdzieś w dyskusjach w
internecie, czyli jak to framework JavaScript'u? Znamy
takie framework'i jak Angular, jak Vue, a React często nazywany jest nazywany jest
biblioteką. Zresztą sam go tak nazwałem na początku tej lekcji. Wynika
to przede wszystkim z tego, że sam React, w sobie, nie zawiera takich
narzędzi jak narzędzie do tworzenia routing'u, czyli różnych ścieżek,
którymi możemy podążać sobie w naszej aplikacji tworzenia podstron i tak
dalej, nie zawiera też, na przykład, wbudowanych narzędzi do walidacji formularzy.Nie
zawiera na przykład store'u, czyli takiej ogólnej pamięci aplikacji, w której możemy
trzymać różne przydatne rzeczy. Tych umiejętności React
nie posiada, ale jeśli przyjrzymy się ekosystemowi React'a, który tej chwili jest największym
ekosystemem, jeśli chodzi o społeczność zgromadzoną wokół jakiegoś framework'a,
to zobaczymy, że istnieje mnóstwo narzędzi, które łatają te dziury. Mamy
takie narzędzia jak React Router, czy Reach Router do tworzenia właśnie
ranking'u. Mamy React Final Form albo Formik do tworzenia formularzy i validate'owania
tych formularzy. Mamy na przykład Redux albo MobX do tworzenia store'u, więc
jak widzisz, React sam w sobie może nie jest framework'iem, a zaledwie
biblioteką do tworzenia interfejsów. Natomiast w połączeniu z
całym ekosystemem, który istnieje w internecie, ze wszystkimi narzędziami,
które możemy podpiąć do tej biblioteki, on staje się pełnoprawnym framework'iem
i z zasady, nie ma różnicy, co do tego czy wybieramy
do naszego projektu React'a, Angular'a, czy Vue. Większość rzeczy można osiągnąć
w podobny sposób w tych framework'ach. One mają podobne predyspozycje i tak
naprawdę wybór framework'a do projektu często zależy od upodobań i
wiedzy programisty. Jednak od wielu lat niepodzielnie React rządzi, jeśli chodzi framework'i i
tutaj już celowo używam słowa framework, ponieważ wiesz już że istnieje cały
ekosystem, który tworzy właśnie ten framework i jest to bardzo przyjazna i bardzo fajna technologia
dająca bardzo dużą swobodę deweloperowi. Można zrobić tutaj mnóstwo rzeczy w
bardzo ciekawy sposób i w tym kursie o podstawach React powiem ci jak
można wykorzystać najlepiej potencjał, który kryje się za tą technologią.