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ść. Skoro mamy już przygotowaną naszą strukturę aplikacji, nasz
folder jest gotowy do dalszej pracy, więc teraz stworzymy nasze podstrony
i tylko powiem jaki jest cel w ogóle tego, co teraz będziemy robić. Stworzymy trzy
podstrony, czyli TwittersView, ArticlesView i NotesView. TwittersView
będzie tą naszą podstawową stroną, tą stroną główną, więc ona będzie
się wyświetlać pod takim adresem, jak mamy tutaj. Drugim adresem będzie
articles, a trzecim adresem będzie notes. To jest nasz
cel i do tego będziemy dążyć w implementacji naszego React Router'a, ale
zacznijmy od początku, czyli nowy folder views. TwittersView, to
nasz pierwszy widok. Kolejnym będzie ArticlesView
i kolejnym NotesView.
Zauważ, że każdy widok kończy się na View, żeby
po było wiadomo, co importujemy i że to importujemy jest widokiem.
Chciałbym właśnie stosować taką strukturę. Uważam, że to jest bardzo
fajne, kiedy patrzymy później na górę pliku i widzimy importy i widzimy,
że coś się nazywa View, to nie będziemy tego mylić na przykład z komponentem, który
może być reużywalny, więc teraz w każdym tych folderów stworzymy odpowiedni
plik ArticlesView.js. Oczywiście, NotesView.js i TwittersView.js. Stwórzmy
sobie zupełnie podstawowy komponent. Zaimportujemy React'a,
stworzymy prostą funkcje ArticlesView. Funkcja
strzałkowa, zwracamy po prostu informację,
że "This is an Articles View". Wyeksportujemy
to. Skopiujemy
to wszystko, bo będziemy podmieniać tylko nazwę. Tutaj zrobimy NotesView. Tutaj
również. Robimy to po to, żeby użyć
naszego React Router DOM i React Router, o którym powiem ci za
chwilę i żebyśmy widzieli, co robimy, kiedy zmieniamy nasze
ścieżki. Okej,
to już mamy. Teraz zaimportujemy sobie wszystkie te trzy ścieżki i
na razie nie będziemy ich używać w
naszym JSX'ie. Z tym sobie poczekamy. Teraz to, co musimy zrobić, to
zainstalować React Router i React Router Dom. Żeby to zrobić musimy
odpalić naszą konsolę i wpisać yarn add react-router
i react-router-dom
i kiedy
mamy już zainstalowane nasze dwie paczki, możemy teraz zaimportować to, co potrzebujemy
w naszym widoku, a będzie się to nazywać BrowserRouter
oraz Route i uwaga importujemy
to z react-router-dom. W
tym miejscu, teraz użyjemy komponentu
BrowserRouter. To
jest taki komponent router'a, który odpowiada za prawidłowe
nawigowanie po naszej aplikacji, właśnie w przeglądarce. Stąd
jego nazwa i to, co jest istotne dla BrowserRouter'a to to, żeby on miał tylko
jedno dziecko, więc teraz zapakujemy to wszystko we fragment, żeby on
w trakcie budowania naszej aplikacji, nie zaczął mieć żadnych problemów
z nami i teraz, żeby wskazać, że mamy
kilka ścieżek naszej aplikacji, musimy użyć komponentu drugiego,
który zaimportowaliśmy, czyli Route. Użycie
Route'ów jest naprawdę bardzo proste i Route przyjmuje props'a, który nazywa
się path, gdzie podajemy jako string ścieżkę. Może
być to string, może być to zmienna. Przy bardziej skomplikowanych rzeczach, ale u
nas jest to zwykły string i w tym przypadku mówimy, oczywiście,
o ścieżce głównej, czyli tej,
którą mamy teraz, bez żadnego elementu po naszym
slash'u i drugim props'em, który przyjmuje Route, jest komponent,
więc wygląda to ten sposób, że podajemy
tutaj nazwę komponentu, który zaimportowaliśmy na górze
i działa to w następujący sposób. Jeśli jesteśmy na
ścieżce głównej i spełniamy ten warunek, to wyświetlamy TwittersView,
czyli komponent, który zaimportowaliśmy. Jeśli
jesteśmy na ścieżce articles, to
wyświetlimy ArticlesView. Jeśli
jesteśmy na ścieżce notes, to wyświetlimy oczywiście
NotesView. Póki co, wszystko się
zgadza, ale popatrz co zdarzy się, kiedy wpiszę notes. W
tym momencie nasza ścieżka spełnia dwa warunki, ponieważ jesteśmy
nadal na ścieżce, która wygląda w ten sposób, ale jesteśmy
też na ścieżce, która ma coś po naszym slash'u i może wydawać się to kontrintuicyjne,
ale tak właśnie działa ReactRouter. Jest to zamierzony efekt, ponieważ
możemy mieć kilka komponentów na jednej ścieżce, na przykład
jakiś sidebar albo coś takiego, jakiś modal, o czym opowiem
ci później i dlatego twórcy ReactRouter'a wymyślili
to właśnie w ten sposób. Jeśli chcielibyśmy, żeby ta ścieżka była
tylko i wyłącznie na stronie głównej, czyli nie
pojawiła w żadnej innych ścieżek, to musimy tutaj dodać specjalnego propsa,
który nazywa exact i w tym
momencie, jeśli wpiszemy sobie na przykład articles albo
notes, to pojawia już się nam tylko jeden komponent. Na
to wszystko jest jeszcze jeden sposób, który ja uważam, że jest jeszcze bezpieczniejszy, ale o
tym opowiem ci już w następnej lekcji.