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ść, w poprzedniej lekcji udało nam się skonfigurować nasz storybook, natomiast
teraz stworzymy nasze pierwsze story dla komponentu button. W tej chwili
możemy już sobie wywalić ten folder stories, który nie będzie nam potrzebny, ponieważ storybook poszukuje
plików ze stories w folderze components, więc tutaj w tym miejscu stworzymy
sobie teraz button stories js i stworzymy
nasze pierwsze story, posłużymy się oczywiście dokumentacją, mamy
to akurat fajny przykład button'a, który sobie skopiujemy i zaimplementujemy to w
nasz sposób. Z racji,
że baton znajduje się w tym samym folderze co story, możemy po prostu zaimportować go
w ten sposób, action
na razie sobie wywalimy i takim podstawowym elementem story
jest właśnie stories of które zawsze zaczyna każde story. W tym
momencie deklarujemy co to ma być. Jest to button, który
jest modułem i każdy add, to będzie osobne
story, to będzie osobny punkt w tym naszym explorerze po lewej stronie będzie
lista i button będzie tym zewnętrznym pierwszym elementem, a kolejnymi
właśnie dziećmi jego będą kolejne podpunkty,
które są reprezentowane przez ten add, więc
teraz jedno i drugie sobie wywalimy i stworzymy
własny. Pierwsze co podajemy tutaj, to oczywiście nazwa
tego story, więc możemy powiedzieć, że to będzie primary. Kolejną
rzeczą jest funkcja strzałkowa, która po prostu zwraca nam jsx i
w tym miejscu będzie to nasz button, nasz button,
który może mieć jakikolwiek tekst. Drugim
button'em będzie secondary, który
również będzie miał funkcję strzałkową i tutaj też zwrócimy button, z tym
że tutaj dodamy mu props'a secondary i teraz
jeśli wszystko poszło dobrze, jeśli zbudujemy sobie teraz nasz storybook,
to zobaczymy w storybook'u właśnie te dwa story, okej
i na pierwszy rzut oka widać, że coś jest nie tak. Przede wszystkim wam się nie załadował,
a po drugie kolor się nie zgadza i kolor to jest akurat moja wina, ponieważ
tutaj w komponencie button najprawdopodobniej pomyliłem kolory,
teraz je sobie podmienimy, przy
okazji możesz zobaczyć jak szybko odświeża się styled-component, bo
już wszystko się zgadza i teraz druga rzecz, która
nas może nieco bardziej zaniepokoić to fakt, że nie załadował się nam font, wynika on
z tego, że co prawda on jest zadeklarowany tutaj, ale tak jak już mówiłem wyłączyłem go sobie
lokalnie na moim komputerze tak, żeby nie było tak, że nie
mam tego fontu, a tak, żeby nie było tak,
że ten font się nie ładuje, a mój komputer i tak serwuje go z racji tego, że
jest zainstalowany na tej maszynie, więc po prostu symuluje takie samo środowisko
jakie będzie miał użytkownik, który po prostu nie ma tego font'u zainstalowanego, więc
teraz musimy dodać globalne style dla storybook'a i dlaczego tak się
dzieje, dlatego, że nasze globalne style znajdują się w views root,
tutaj w tym miejscu, a storybook z tym komponentem nie ma absolutnie nic
wspólnego, on sobie to renderuje na własnych warunkach, we własnym DOM'ie który
jest zupełnie osobny od naszej aplikacji i to jest właśnie jego największa zaleta, ponieważ
to środowisko jest po prostu odseparowane jedno od drugiego, więc
teraz zróbmy mały research i sprawdźmy, co możemy zrobić żeby dodać global-styles
do naszego storybook, a mamy
tutaj artykuł, w którym mowa jest o takim rozwiązaniu jak backgrounds,
czyli taki plugin do storybook, który pozwala nam na dodanie dekoratorów
do naszego story, z tym, że my chcemy żeby to było absolutnie globalne, żebyśmy nie
musieli pamiętać o tym, żeby do każdego story dodawać jakiś background w
postaci custom'owych stylów, więc to co możemy zrobić to stworzyć
preview head html w folderze kropka
storybook i wewnątrz
niego możemy robić wszystko, co w takim normalnym head'zie w html'u, możemy
na przykład ładować CSS'y, ale jeśli możemy ładować CSS, to możemy
też zastosować po prostu taki style, a jeśli możemy zastosować taki style
to nic nie stoi na przeszkodzie żebyśmy mogli skopiować sobie teraz wszystkie nasze style
globalne i po prostu wrzucić je tutaj w to miejsce i teraz
jeśli przebudujemy sobie naszego storybook, a on załaduję
nową konfigurację, to teoretycznie powinniśmy widzieć już normalne załadowane
nowe font'y w naszym storybook'u i tak
się właśnie stało nasze button'y wyglądają dokładnie tak jak powinny,
więc taką pierwszą konfigurację i pierwsze komponenty w storybooku mamy już za
sobą, a w następnych lekcjach pokażę ci jak możemy korzystać z tego narzędzia
w nieco bardziej zaawansowany sposób.