w Praktyce
6 godz. 51 min · ReactJS · Full-stack i Programowanie
Adam RomanskiFrontend developer & YouTube CreatorNarzędzia typu ESlint, Prettier, Husky czy lint-staged niezmiernie pomagają nam w pracy. Problem jednak polega na tym, że ich konfiguracja bywa kłopotliwa. W tym kursie dowiesz się, jak poprawnie skonfigurować te narzędzia, tak, aby nie wchodziły ze sobą w konflikty i pomagały nam pisać lepszy kod.
Brzmi jak zły pomysł? Wcale nie! CSS in JS to rewolucyjne podejście, które pozwala nam tworzyć style bezpośrednio w komponentach. Dzięki bibliotece Styled Components możesz wpływać na ich stan, wygląd i wiele innych rzeczy. To niezwykłe narzędzie, wprowadzające powiew świeżości dla ludzi zmęczonych czystym CSS.
Dokumentowanie wyglądu i zachowania naszych komponentów bywa kłopotliwe. Jeśli jednak użyjemy odpowiednich narzędzi, staje się banalne! Storybook w połączeniu z podejściem atomic design pozwoli nam na stworzenie świetnie udokumentowanych komponentów.
React w Praktyce nie byłby... praktyczny, gdyby nie pokazanie tego, w jaki sposób rozwiązuje się problemy z layoutem aplikacji. Sidebary, szablony, powtarzalne komponenty – to wszystko poznasz w tym kursie.
Tworzenie store, czyli warstwy z danymi w naszej aplikacji dla wielu bywa wyzwaniem dość trudnym. Wynika to często z tego, że przykłady Reduxa bywają niepraktyczne. W tym kursie dowiesz się, w jaki sposób działa Redux – zaczniemy od podstaw, a skończymy na rozbudowanej strukturze danych. Dzięki temu zobaczysz, że nie taki Redux straszny jak go malują.
Aplikacja frontendowa bez backendu może istnieć, choć jej możliwości będą zdecydowanie ograniczone. A już na pewno będzie ona miała kiepską pamięć. Dlatego w tym kursie stworzymy lokalną wersję backendu połączoną z MongoDB na mLab. W ten sposób będziemy mogli dłużej przechowywać dane zapisane w naszych komponentach.
O testach można mówić wiele. To niezwykle rozległy temat, dlatego zanim zaczniesz je pisać na poważnie, chcę Ci pokazać jak możesz poćwiczyć podstawowe rzeczy. Poznasz narzędzie JEST, które odpowiada za uruchamianie testów, oraz wprowadzę Cię do react-testing-library, jednej z najpopularniejszych bibliotek do testowania aplikacji reactowych.
Ten kurs przeznaczony jest dla osób, które lada dzień będą aplikować na stanowiska juniorskie jako React developer. Zawarłem w nim wiele aspektów pracy z React, które zdarzają się w prawdziwej pracy. Ponadto skorzystać mogą z niego osoby, które znają inny framework JS i chcą nauczyć się Reacta, jednak kursy od podstaw są dla nich zbyt proste.
16.8.x
Cześć, skoro już wiesz czym jest Atomic Design to teraz czas żeby trochę
uporządkować nasz projekt i przygotować się do tego żebyśmy mogli pracować z tą metodyką
właśnie w naszym projekcie, więc pierwsze co zrobimy to stworzymy
sobie kilka folderów, które będą nam sygnalizować
do jakiej grupy należą nasze komponenty, czyli atoms, molecules, organisms,
templates zrobimy poza folderem
components i w naszym pages będzie właśnie folder
views, więc skoro to już mam przygotowane to teraz
możemy na przykład przenieść button do odpowiedniego folderu i pewnie
jak się domyślasz, button jest atomem, teraz możemy go spokojnie tutaj
przenieść i przy okazji możemy zapdejtować importy
w tym miejscu, żeby nasz projekt się nie zaczął wywalać, okej i
skoro nasz projekt jest przygotowany do pracy z Atomic Design'em to teraz pora
żebyśmy jeszcze powiedzieli sobie o dwóch takich bardzo istotnych elementach styled-components,
które będą niezbędne do dalszego development'u. Już są one nieco
bardziej zaawansowane dlaczego dlatego nie mówiłem o nich na samym początku. Powiem
op niech teraz i ustalimy sobie to raz a dobrze i po prostu przejdziemy już
do pracy na naszych komponentach. Pierwsza rzecz o której chcę ci powiedzieć to tym theme
provider. Jeśli oglądałeś lub oglądałaś mój poprzedni kurs
to wiesz, że React zawiera coś takiego jak context api
i i jest to taki, swego rodzaju teleport, który pozwala nam na przenoszenie
danych czy też funkcji czegokolwiek czego tak naprawdę chcemy w różne
miejsca naszej aplikacji, z innego miejsca i tym właśnie jest
theme provider dla naszego styled-component'cie, jest takim
teleportem, który pozwala nam na przenoszenie danych dotyczących wyglądu
naszych elementów do różnych miejsc i żebyśmy mogli mieć
dostęp do tych danych z każdego komponentu, w którym będziemy
tworzyć nasze style. To może brzmi skomplikowanie na początku,
natomiast zaraz zobaczysz, że w praktyce jest to naprawdę banalne. Spróbujmy
teraz stworzyć sobie nasz theme provider, który pozwoli nam na teleportowanie
naszych stylów do każdego miejsca w naszej aplikacji. Pierwsze
co musimy zrobić to oczywiście zaimportować theme
provider ze styled-components. Kolejna
rzecz, która bardzo nam się przyda to oczywiście sam theme, czyli ten wygląd,
który będziemy przekazywać. Na razie stworzymy sobie w
tym miejscu i będzie naprawdę bardzo prosty. Powiemy,
że będzie tam jeden kolor, który będzie
czarny i teraz
jedyne co musimy zrobić to opleść nasze
elementy, nasz theme provider, podając
mu theme w ten sposób i tutaj
jest tylko jedno zastrzeżenie, theme provider musi oplatać jeden
element, więc możemy się tu posłużyć fragmentem, który nie zostanie
wyrenderowany, ale pozwoli nam na użycie właśnie theme providera i teraz
globalstyle możemy sobie spokojnie poza naszym theme provider'em wrzucić, ponieważ
on nic tutaj tak naprawdę nie zmienia i też samym globalstyle nie
pobieramy w żaden sposób tych rzeczy, które będziemy theme wykorzystywać,
więc tutaj theme podaje wszystkie props'y,
które mu podajemy tutaj z tego obiektu, w dół do wszystkich komponentów. Jak
to działa? Odpalmy sobie teraz button i powiedzmy,
że na razie sobie wyrzucimy tę linijkę i wpiszemy
background color, otworzymy
sobie funkcję strzałkową i teraz jeśli pamiętasz context api mógł być przekazywany
po prostu jako props, więc w tym miejscu możemy zrobić coś takiego, że
wyciągniemy sobie props'y, z props'ów wyciągniemy
sobie theme i z tego theme wyciągniemy sobie primary,
bo tak się nazywa nasz kolor, jak
sobie to zapiszemy i odpalimy naszą apkę to zobaczysz,
że button przybrał kolor czarny, czyli ten kolor
tutaj stąd tak naprawdę znajduje się w tym miejscu. Został
podany w obiekcie jako theme przez nasz thmeme provider,
theme provider użył swojego magicznego teleportu do
tego, aby button dostał właśnie ten kolor w props'ach. Props'y
zawierają ten obiekt theme, a theme zawiera primary. Tak to działa, taka jest
droga tego wszystkiego. Możemy sobie oczywiście zdestrukturyzować theme, w ten
sposób i to również będzie działać, więc w ten
sposób używając theme provider'a możemy robić przede wszystkim dwie
rzeczy. Z jednej strony wpływać na to jak jest na przykład obowiązujący
kolor w aplikacji, a przyda nam się to bardzo, ponieważ przy wyborze
różnych notatek, na przykład przy wyborze notatek zwykłych mamy żółty,
przy wyborze twitter'ów mamy niebieski, a przy wyborze artykułów mamy zielony
kolor, więc to będziemy właśnie zmieniać naszym theme'em, a dodatkowo
możemy jeszcze używać takich globalnych zmiennych, które możemy importować
sobie później naszych komponentach i z nich korzystać, czyli na przykład właśnie z rozmiarów
fontów albo z grubości fontów żebyśmy nie musieli pamiętać co to jest 600,
to możemy to wpisać inaczej, jako na przykład font regular albo light.
Tak, więc generalnie theme provider przyda nam się naprawdę
wielu rzeczy i właśnie w następnej lekcji stworzymy sobie takie globalne zmienne dzięki
którym będziemy mogli używać niektórych właściwości, nie zapamiętując
ich i nie używając ich po prostu gdzieś tam wyciągając je z pamięci tylko posługując
się prostymi fajnymi zmiennymi w taki sposób. Do zobaczenia
w następnej lekcji.