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ść. Witaj w kolejnej lekcji, w której zajmiemy się w końcu zmianą oblicza
naszej aplikacji. Zaczniemy tutaj trochę zmieniać w plikach wyglądzie. Mamy
w końcu nowy design naszego klienta, który nam zlecił wykonanie
tej aplikacji i dojdą nam nowe podstrony i tak dalej, ale zanim do tego wszystkiego przejdziemy,
to muszę ci powiedzieć o kilku rzeczach. Wszystkie te zmiany, które tutaj
ci pokażę, są na branch'u 04, więc możesz pracę zacząć
razem ze mną zaczynając właśnie od tego branch'a. Kilka rzeczy tu się zmieniło
w stosunku do poprzedniego działu. Żeby po prostu nam ułatwić pracę i żeby przygotować
strukturę aplikacji do dalszego rozwoju. Przede wszystkim ujednoliciłem nazwy
niektórych komponentów i teraz zamiast ListWrapper, mam po prostu List, List.js,
a prywatny komponent ListItem jest na wierzchu w folderze List.
Tym sposobem dostęp do prywatnych komponentów jest po prostu łatwiejszy i tego już
się będziemy teraz trzymać. W poprzednich działach struktura plików nie miała aż takiego znaczenia
i warto tutaj też podkreślić jedną bardzo istotną rzecz. Widziałem
w swoim życiu co najmniej kilkanaście bardzo dużych projektów w React'ie i w
kilku pracowałem. To co uderzyło mnie najbardziej ze wszystkich z
nich to to, że nie ma tak naprawdę jednej jasno
określonej struktury tego, jak powinien wyglądać wzorcowy
projekt w React'ie. Jest nawet strona, która mówi o tym, jak tworzyć
takie skalowalne duże projekty w React'ie i zawiera ona to zdanie "Przemieszczaj
pliki, dopóki nie poczujesz, że wszystko jest na swoim miejscu." Żeby
było śmieszniej to ta strona powstała na podstawie tweet'a, gdzie Dan Abramov
właśnie mówi to samo, żeby najpierw zacząć od prostego rozwiązania i później,
w miarę rozbudowania aplikacji, po prostu rozbudowywać też strukturę
plików, więc to co pokażę ci w tym kursie nie powinno być
dla ciebie wyznacznikiem tego jak powinna wyglądać każda aplikacja. Może
być to wyznacznik tego, jak może wyglądać taka aplikacja, którą my tworzymy. Jednak pamiętaj,
że to co my robimy, również mogłoby być tworzone w zupełnie inny sposób. Inny
deweloper mógłby mieć do tego jakieś inne podejście, mógłby nazywać inaczej komponenty,
mógłby inaczej je poukładać, więc pierwszą i najważniejszą lekcją, jeśli chodzi
skalowanie projektu w React'ie jest to, że po prostu należy dostosować
strukturę projektu do własnych potrzeb, tak żeby ona
była przewidywalna, żeby była spójna, żebyśmy trzymali się standardów, które
sami sobie wyznaczymy, żeby ciężko było to zepsuć i żebyśmy wiedzieli, które
na przykład pliki możemy usunąć bez żadnych konsekwencji, ponieważ jesteśmy tak dobrze
zorientowani w strukturze tej aplikacji. Więc pierwszą zmianę jaką
dokonamy, pierwszym ulepszeniem, pierwszym rozbudowanym naszej struktury, będzie
odpowiedzenie na taką podstawową potrzebę naszego klienta,
czyli tworzenie podstron. Mamy teraz Twitter'y i mamy
artykuły i mamy notatki i dla tych trzech rzeczy musimy stworzyć podstrony Dotychczas
mieliśmy tylko App.js, który zawierał wszystko, co nam było potrzebne. To
był taki nasz root'owy element, taki główny, taka strona
główna po prostu i ona pozostanie tą naszą stronę główną, tylko
teraz zmienimy jej nazwę i wrzucimy ją do nowego folderu. W naszym
folderze src stworzymy sobie nowy folder o nazwie views i tam
będzie zawierał wszystkie widoki, które będziemy mieć w naszej aplikacji. Również ten
główny root'owy, jak już to nazwałem widok i tak właśnie go nazwiemy - Root. Nasz plik App.js
przeniesiemy do tego folderu. Visual
Studio Code zapyta się czy update'ować importy do tego pliku. Możemy to
zrobić i on wtedy nam podmieni te ścieżki, żeby nam nic nie zepsuło, a sam
App.js przemianujemy na Root. To
samo zrobimy z nazwą komponentów tym miejscu, tutaj
tak jak już mówiłem, stosujemy się po prostu do
terminologii i do podejścia, które wynika gdzieś z mojego doświadczenia. Natomiast
nie jest to jakaś wyrocznia, nie traktuj tego jako coś,
co jest wyznacznikiem i czego zawsze każdy będzie się trzymać. To nie jest
tak, w React'ie mamy pełną dowolność i nie należy wartościować,
nie należy oceniać projektów na podstawie ich struktury, jeśli ona jest dobrze
skonstruowana, jeśli jest stworzona z głową, po prostu. Więc
teraz przejdźmy sobie do index.js update'ujmy nasz import
w tym miejscu, ponieważ teraz importujemy Root i nasz
komponent Root znajduje się w folderze views. Coś
jeszcze nie działa, zaraz sprawdzimy o co chodzi. Okej,
musimy zaimportować to z pliku Root. Dobra, teraz
kolejna rzecz się zepsuła, index.css. Index.css
przenieśliśmy do Root i tutaj będziemy go też importować. Jak widzisz już
wszystko się naprawiło, co prawda istnieją lepsze sposoby na importowanie
czy też inject'owanie, jak to się mówi, wstrzykiwanie stylów
globalnych. Natomiast na potrzeby tego kursu zostawimy po prostu index.css,
nie będziemy tego ruszać. To działa, to jest okej. W następnych
kursach pokażę ci jak w bardziej zaawansowany sposób możemy to robić. Tutaj
nie musimy się tym przejmować i skoro stworzyliśmy już nasz nowy folder
to pewnie powoli zauważasz, że kształtuje nam się taka struktura. Mamy assets,
czyli zasoby. Tutaj będziemy trzymać nasze obrazki. Jak
widzisz pojawiło logo, ale to pokażę ci w następnej lekcji, co z nim zrobimy. Mamy
też komponenty, które już znasz i to bardzo dobrze. Mamy tutaj kilka komponentów.
Wszystko pozostaje bez zmian. Komponenty tego nowego, używalne elementy naszej
aplikacji, tutaj się wszystko zgadza. Na pewno dojdzie tutaj kilka nowych komponentów
i mamy też views. Views to po prostu pojedyncze, całe
widoki składające się właśnie z komponentów. Views mają to do siebie, w
przeciwieństwie do komponentów, że nie mogą być nieużywane. To jest jedna strona
naszej aplikacji i też nazywa się w taki sposób, aby sugerować,
że jest ona jakąś stroną, nie jest pojedynczym komponentem. Tutaj
mamy akurat Root, ale inne widoki będziemy nazywać nieco inaczej. Tutaj
też założymy sobie pewną konwencję, o której opowiem ci w już następnej lekcji. Natomiast
to, co jeszcze w tym widoku możemy zrobić, to usunąć kilka rzeczy, biorąc
pod uwagę, że to będzie nasz taki główny widok naszej aplikacji, to
on nie będzie zawierał sam sobie żadnych komponentów, takich jak lista, czy
formularz, przynajmniej nie w takiej postaci. Możemy
to usunąć też stąd. W tej chwili zostawimy
tutaj znane lubiane Hello World. Widok
naszej aplikacji na chwilę trochę zbiedniał, ale już w następnej lekcji
stworzymy nowe widoki, nowe podstrony i wprowadzimy
w końcu React Router. Do zobaczenia w następnej lekcji.