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ść! Na koniec ostatniej lekcji powierzyłem Ci zadanie poprawienia wyglądu naszego
header'a. Jestem ciekaw, jak Ci poszło, ale jeśli nie masz ochoty tego robić, to
zawsze możesz znaleźć gotowy kod na branch'u 04.6. Ja
też zrobiłem swoją robotę. Zrobiłem tutaj większy logo, większy
trochę button i zmniejszyłem delikatnie fonty w naszej nawigacji. Teraz wszystko
wygląda prawie identycznie, jak naszym headerze na design'ach. A skoro już
przy design'ach jesteśmy, to w tej lekcji przejdziemy do kolejnego etapu tworzenia naszej
aplikacji, czyli do stworzenia modala. Modal będzie pojawiał się po kliknięciu
na button new item, a będzie zamykać się, jeśli klikniemy na
krzyżyk albo na button add new item. Jak widzisz, formularz
już jest gotowy, więc nie będziemy mieć tutaj za dużo pracy. Jedyne, co musimy zrobić to renderowanie
warunkowe. Jeśli zaznaczymy odpowiednią opcję. Jeśli to będzie Twitter, to
będzie to wyglądać tak, jak teraz. Jeśli artykuł, to nie będziemy podawać, na przykład, obrazka,
a jeśli notatka, to będzie to tylko tytuł i description. Na
potrzeby tego kursu możemy ustalić, że żeby praca szła nam trochę szybciej, nie
będziemy implementować tutaj takiej opcji, że jak klikniemy sobie poza ten modal, to będzie
on się zamykał. Wystarczy, że będziemy klikać na krzyżyk albo na ten button. Wtedy
on się zamknie. Nie będziemy też tworzyć żadnych animacji, ani przejść. Chcemy, żeby sprawy
były jak najprostsze, żeby tylko wytłumaczyć główne koncepty, główne
założenia tego wszystkiego. Tak więc teraz nie przedłużając, przechodzimy
do dalszej pracy. Pierwsze, co chcemy zrobić, to oczywiście stworzyć
komponent modala, do którego później wrzucimy nasz formularz, więc teraz w
folderze components stworzymy sobie folder modal. Wewnętrz niego
modal.js i od
razu też, model.module.scss. Jak
zawsze, importujemy React'a. Importujemy też od razu style. Stworzymy
sobie bardzo prosty komponent, na razie. Wyeksportujemy
go. Tutaj, w tym miejscu od razu nadamy className, zgodnie
z konwencją nazwiemy go, jak zwykle, wrapper. Wrócimy
do naszego widoku root'owego. Zaimportujemy
nasz modal w tym miejscu i wrzucimy
go poza switch'a, czyli poza komponentem Switch. Wpisujemy, po prostu,
modal. Okej i jak zwykle mam jakiś błąd. Pewnie zrobiłem
literówkę. Sprawdźmy, tak
nazwałem komponent Modaj. To nam
działa, teraz ostylujemy sobie szybko naszego modala, ale chcę
żeby był idealnie na środku. Dodatkowo,
damy mu, powiedzmy, że 60, szerokości
ekranu i jakieś 70
jego wysokości. Kolor
damy biały, jako tło i do tego dodamy taki fajny box-shadow. Powiedzmy, że
to będzie 10 pikseli, 40 pikseli. Delikatnie
go cofniemy. Sprawdźmy, jak
to będzie wyglądać. Ta
czwarta wartość w box-shadow, to jest taki protip - pozwala nam na osadzenie
tego cienia, jakby troszkę w głąb bardziej, dzięki temu
te nasze boczne cienie nie są takie płaskie. Teraz
wyglądają one tragicznie. W ten sposób wygląda to dużo lepiej. I
jeszcze jedna kluczowa
tutaj wartość, żeby to w ogóle było w miejscu, w którym chcemy żeby było,
position: fixed i teraz nasz modal znajduje się idealnie na
środku ekranu, więc teraz nasz testowy Hello World zastąpimy
sobie zaimportowany formularzem i zobaczymy,
jak to będzie wyglądać. Okej,
już teraz widzimy, że nasz formularz musi mieć trochę mniejszy margin, więc zaraz
do tego przejdziemy. Tutaj zrobimy 100% - zobaczymy jak to będzie
wyglądać i ten margines z dołu
możemy zdjąć. Wystarczy 50. Porównajmy to
z naszym design'em. Tutaj mamy wszystko wyrównanie do lewej już, więc sprawdźmy,
jaka tu jest struktura, czyli w naszym wrapperze rzeczy
powinny się zaczynać od flex-start. Może zróbmy tak, że wywalimy
tutaj ten margines, a wrzucimy go do naszego modala. W
ten sposób, będzie łatwiej odgadnąć,
który komponent jest odpowiedzialny za rozłożenie poszczególnych komponentów wewnętrznego. Więc
tutaj damy padding: 50 pikseli z każdej strony, powinno być
okej. W naszym projekcie, to boczne są
trochę większe, spróbujemy zatem dodać tutaj 80 i tutaj
widzimy, że jeszcze można by trochę ten button opuścić, on jest delikatnie za wysoko
w stosunku do tego, co mamy tutaj
na design'ach, więc teraz otworzymy sobie formularz i z racji że wiemy, że w tym formie
jest tylko jeden button, to możemy zrobić coś, po prostu, takiego. Wtedy
wiem, że ta reguła jest specyficzna, tylko wyłącznie dla tego button'a, który znajduje
tutaj wewnątrz. Okej i mamy taką dobrą bazę, dobrą podstawę do tego, żeby
tworzyć dalszą część tego modala. W następnej lekcji zajmiemy się otwieraniem i zamykaniem
modala, a także dodawaniem button'a, który pozwoli zamknąć
właśnie, tym krzyżykiem, który mamy tutaj, na naszych design'ach. Dodatkowo, zajmujemy
się też tworzeniem tych radio button'ów, które pozwolą nam na wybranie odpowiedniej
opcji, w zależności od tego, jaką notatkę będziemy chcieli dodać do naszej aplikacji,
ale to wszystko już następnej lekcji.