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ż pokazałem ci jest'a, to teraz czas na bibliotekę,
która bardzo ułatwi nam pracę z React'em, generalnie mamy takie
dwa nurty w React'cie, wcześniejszy jest enzyme, to
jest taka biblioteka stworzona przez airbnm właśnie do testowania React'a. Natomiast
nowszym podejściem jest dom testing library, który ma swoją taką
odnogę, nazywa się React testing library i obecnie jest to
najpopularniejsza biblioteka do testowania aplikacji React'owych i
zanim napiszemy pierwszy test, używając tej biblioteki to najpierw zainstalujmy
sobie ją w naszym projekcie. Okej, skoro nasza biblioteka została zainstalowana, to
teraz spróbujmy napisać jakiś taki najprostszy test na świecie, może heading'u
na przykład stworzymy sobie heading test js, zaimportujemy
sobie React'a, zaimportujemy też sobie
render z react testing library i
musimy jeszcze do naszego testu zaimportować oczywiście nasz heading i teraz
przyjęło się, że taki element oplatający wszystkie inne
testy nazywa się describe. Działa to w
taki sposób, że tutaj piszemy heading component czyli nazywamy wszystkie
testy, które będą dotyczyć jakiegoś elementu w naszym pliku, właśnie opisujemy
tutaj. Stąd jakby nazwa tej metody describe, a teraz
jako funkcję strzałkową podajemy sobie dalsze testy. Załóżmy,
że chcemy sprawdzić czy heading renderuje tekst,
który mu podajemy. Możemy to zrobić pobierając, destruktyzując
właściwie taką wartość jak get by text, którą
wyciągamy właśnie z metody render, która renderuje
nam nasz heading. Odpalmy sobie teraz nasze testy
i zobaczymy, że on failure, a wynika to z tego, że on nie
rozumie czym jest theme provider, więc w naszym teście, żeby nasz komponent
działał poprawnie musimy zaimportować sobie theme provider ze styled components
i dodatkowo musimy jeszcze zaimportować sobie nasz theme theme main
theme i teraz ten heading, który
mamy tutaj musimy opleść dodatkowo w theme provider, któremu
podamy właśnie theme w taki sposób. Nasz
heading wtedy możemy wrzucić do naszego theme providera i nagle nasz komponent
rozumie o co chodzi, ale teraz jak przetestować to czy ten tekst, który się tutaj pojawia
jest faktycznie renderowany, możemy to zrobić poprzez get by text,
który pobiera sobie z wyrenderowanego testu nasze elementy
i sprawdza czy zawierają one to co podajemy tutaj w nawiasie w tej metodzie, więc
jeśli na przykład chcielibyśmy, żeby zawierał Hello Roman, to nasz test failuje. Wynika
to z tego, że mam teraz to pokazuje, nasz komponent zawiera hello a nie hello
roman i w ten sposób napisaliśmy pierwszy
test komponentu React'owego i z racji, że w tym kursie chciałem tylko
z zajawić jak wyglądają takie bardzo podstawowe testy w javascripcie i w React'ie
to na tym sobie skończymy. Masz zainstalowane wszystko co potrzebujesz,
żeby zacząć testować inne komponenty. Zachęcam cię do tego żeby
poeksperymentować z tymi bibliotekami, tak naprawdę w praktyce pisanie
testów wygląda tak, że nikt tego nie robi z głowy. Raczej wszyscy siedzimy
po prostu w dokumentacji, sprawdzamy jak możemy coś przetestować, sprawdzamy różne
matcher'y, metody, które umożliwiają testowanie tych komponentów i ciebie
zachęcam do tego samego i jeszcze raz zanim się pożegnamy
spójrzmy z dumą na aplikację, która stworzyliśmy. Mamy tutaj naprawdę kawał
dobrej roboty za nami. Mamy mechanizm,
który pozwala nam na dodawanie do naszego backend'u nowych notatek. Możemy
je usuwać, możemy podglądać jak one wyglądają wewnątrz. Stworzyliśmy
tutaj storybook'a style components system atomów, molekuł i organizmów. Stworzyliśmy
dość zaawansowaną strukturę redux'a i co więcej to
wszystko czeka na ciebie, żeby to dopracować, żeby te aplikacje po prostu
doprowadzić do samego końca, bo jest tutaj wiele rzeczy, które specjalnie
dla ciebie zostawiłem, żeby zostawić ci po prostu pole do manewru do
eksperymentów. Ta aplikacja jeśli zostanie skończona pozwoli
ci na zrozumienie praktycznie wszystkiego. Jeśli chodzi o taki średnio
zaawansowany poziom korzystania z React'a. Jeszcze raz bardzo ci
dziękuję za udział w tym kursie. Mam nadzieję, że pozwolił ci zrozumieć bardzo wiele aspektów
związanych właśnie z tym średnio zaawansowanym React'em, a ja zapraszam
cię już wkrótce na bardziej zaawansowany kurs React'a gdzie
właśnie dopracujemy metody typu autoryzacja gdzie sprawdzimy
jak możemy bardziej w zaawansowany sposób testować nasze komponenty
i wiele, wiele, wiele innych rzeczy, które React jeszcze przed
nami ukrywa. Do zobaczenia w następnym kursie.