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ść, zanim przejdziemy do testowania naszych komponentów, chcę ci opowiedzieć
czym jest jest, jest jest to stworzone przez zespół React'a test runner, który
odpalamy z naszej konsoli i dzięki temu możemy właśnie uruchamiać
wszystkie testy które znajdują się w naszym projekcie. Na szczęście create react app
został stworzony w taki sposób, że jest już jest w niego wpisany, nie trzeba go konfigurować. Wszystko
mamy gotowe. Tylko wystarczy zacząć to używać i właśnie
przygotowałem tutaj plik index test js, bo tak wygląda
plik z testem, to znaczy za każdym razem kiedy będziemy chcieli gdzieś dodać
jakieś test to wystarczy, że dodamy na przykład do naszego button'a plik
button test js i dzięki temu rozszerzeniu
test js, jest będzie wiedział, który z tych plików jest testem,
który należy odpalić i przetestować, ale zanim przetestujemy
jakikolwiek komponent. Pokażę ci jak w ogóle pisać testy w jest'cie. Przede
wszystkim mając już jeden plik z testem możemy sobie uruchomić naszego jest'a poprzez
npm run test. Jak
widzisz test sfail'ował, ponieważ nie ma żadnego testu. Nawet jest informuje
nas, że musimy wpisać chociaż jeden test, żeby ten test przeszedł, więc teraz
spróbujmy to zrobić. Generalnie są dwie konwencje, które
możemy używać, żeby pisać nasze testy albo używamy it albo
używamy test. Wybór należy do ciebie, znaczą
one dokładnie to samo. Ja zawsze używam it z racji tego, że po
prostu szybciej można to napisać i teraz jak widzisz tutaj, po
lewej stronie. Tak wygląda wzór testu, ale to już jest React'owy test, a my na
razie sobie przejdziemy do testów takich suchych, bez żadnego React'a
bez niczego, po prostu chcę ci pokazać jakie możliwości daje nam sam jest. Załóżmy,
że stworzymy sobie funkcję, która przyjmuje 2 parametry i
w rezultacie te parametry zwraca dodane, chcemy
taką funkcję przetestować, więc możemy wpisać it adds two numbers,
po przecinku robimy funkcję strzałkową i wpisujemy
ciało naszego testu, więc mamy na przykład
taką metodę jak expect, która mówi wprost, że spodziewaj
się że add to, po dodaniu 1
i 2 wyniesie 3,
czyli rezultat dodania jedynki i dwójki przez
naszą funkcję add to ma wynosić 3. Jeśli
jestem dobry z matematyki, a przynajmniej wiem jak dodawać podstawowe liczby
to powinno działać. Okej, mój
błąd expect zamykamy, czyli
w expect'ie wsadzamy naszą funkcje i dopiero
po zamknięciu klamry z expect dajemy to be 3 i teraz
powinno przejść. Jak widzisz, nasz test przeszedł. Brawo,
napisaliśmy nasz pierwszy test w jest'cie. Teraz pomyślimy nad jakimś
innym testem. Powiedzmy, że mamy tutaj shopping list i mamy
tutaj krakersy, chipsy, co
jeszcze zawiera gluten, bułki, makaron i teraz
chcemy sprawdzić czy nasza
shopping lista zawiera jakieś zdrowe jedzenie. Załóżmy,
że zdrowym jedzeniem w naszym rozumieniu jest Jabłko,
czyli mówimy expect shopping list to
contain apple i to jest
nowa metoda, tak zwany nowy matcher, który pozwala nam
sprawdzać czy zmienna, którą tutaj dodaliśmy, a właściwie to const zawiera chociaż
jedno jabłko, czyli string'a z taką zawartością. Teraz oczywiście
odpuścimy sobie ten test. To jak widzisz test
nie przeszedł, bo nasza lista nie zawiera apple. Jeśli dodamy sobie tutaj, a dopiero
teraz zauważyłem, że wszystkie nazwy miałem po polsku. No mniejsza o to, ale apple
dodaliśmy i nasz test przeszedł pomyślnie i może napiszemy sobie jeszcze
jakąś ostatnią funkcję. Mamy jakąś taką funkcję, która
dodaje nam po prostu 100 do każdej ceny, którą wpiszemy i teraz chcemy,
żeby każda, każda cena była
większa od 100. Czyli jeśli ta funkcja działa poprawnie to
powinno tak być i teraz expect, załóżmy,
że dodajemy cenę 1 i mamy
kolejne matcher, to be greater than. Jak widzisz, tutaj mamy tych matcher'ów trochę więcej,
mamy jeszcze less then, less then or equal. Generalnie
cała dokumentacja jest'a jest bardzo fajna. Polecam ci ją przejrzeć. Tutaj
jest naprawdę wiele rzeczy, które możesz się dowiedzieć o tym jak pisać poprawnie testy,
oczywiście nie jest to związane z React'em, to jest po prostu czysty
JavaScript i skoro już masz takie podstawy
tego jak pisać testy w jest'cie to przechodzimy sobie do następnej
lekcji.