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ę z sukcesem zaimportować i
zaimplementować browser router,czyli komponent znajdujący
się w React Router DOM w bibliotece, która pozwala nam na nawigowanie pomiędzy
stronami naszej aplikacji, a teraz już przechodzimy do tworzenia sidebar'a, który
pozwoli nam no właśnie na przechodzenie za pomocą takich przycisków
nawigacyjnych po naszych widokach, więc czym będzie
sidebar, moim zdaniem będzie to organizm, ponieważ jest to bardzo
poważny spory komponent składający się z wielu elementów. Dlatego
teraz w folderze organizm sobie stworzymy sidebar, a
wewnątrz niego oczywiście sidebar js
oraz sidebar, stories js. Tutaj
jeśli chodzi o pokazywanie jak działa router wewnątrz storybook'a
to będzie bardzo ciekawy case, ale to sobie opowiemy za chwilę, na razie
stworzymy sobie sidebar'a. Zanim
przejdziemy do stylowania naszych komponentów za pomocą styled-components
to spróbujmy sobie rozrysować w takim zwykłym JSX'ie strukturę
tego, mamy tutaj logo, mamy trzy button'y i mamy
jeszcze ten button do wylogowywania, więc
na pewno musimy zaimportować sobie tutaj button icon i teraz jeśli
na brudno mielibyśmy to napisać to tutaj mamy logo, tutaj mamy div'a, który zawiera trzy razy
button icon i button icon
przyjmuje props'a icon. Te
ikony znajdziemy w naszej kasetach w tym miejscu, więc możemy je
sobie teraz zaimportować, wydaje
mi się że nawet mamy to w naszym story
tutaj, o nie musimy ich importować, możemy po prostu
je skopiować stąd, plus
na razie możemy sobie wywalić, kolejność
jest taka ołówek twitter'y żarówka
i logout wyeksportujemy
sobie nasz sidebar i przejdziemy do naszego stories,
żebyśmy mogli podejrzeć czy to w ogóle wygląda jakoś. Okej
mamy nasze pierwsze proste story napisane, storybook
nam ciągle działa w tle, więc teraz musimy tylko wejść sobie na jego
adres, okej nasz sidebar
się pojawił i wygląda chyba całkiem okej, to
znaczy po prostu się nie wywalił bo oczywiście w żaden sposób nie wygląda
na razie jak sidebar, natomiast to co widzisz i możliwe, że nie
mówiłem o tym wcześniej to pojawiły się tutaj foldery. Foldery
w storybook'u to jest o tyle fajna rzecz, że możemy to sobie właśnie pogrupować w taki sposób i od
razu wiemy do jakiej grupy należy dany komponent, jak stworzyć taki folder,
nie ma nic prostrzego, po prostu trzeba zrobić nazwę ze
slashem przed nazwą naszego komponentu, więc jeśli robimy story dla sidebar'a
to mówimy organisms sidebar i storybook automatycznie doda
do takiego folderu organism, a teraz
wróćmy sobie naszego sidebar'a, ponieważ nasze button icon, to tak naprawdę będą
linki z React Router i moglibyśmy to
zrobić w taki sposób, że po prostu wrzucamy w linki nasze
button icon, ale to nie będzie do końca poprawne, dlatego musimy zrobić to
nieco inaczej. Najpierw sobie zaimportujmy komponent link z naszego
react-router-dom, a
teraz nasze styled-components możemy
użyć jako inny komponent poprzez
props as w taki sposób i wtedy
możemy też mu powiedzieć do jakiej ścieżki ma prowadzić, w
tym przypadku notatki będzie to ścieżka
główna, to
będzie twitters, a tu
będzie articles. Przycisk
do wylogowywania również ustawimy na ścieżkę główną i teraz
problem się pojawia w momencie kiedy chcemy wrócić sobie do storybook'a
a on mówi nie możemy używać linków poza routerem, więc to
co musimy zrobić to zaimplementować nowy dekorator w naszym storybook'u,
który pozwoli nam na używanie linków i podglądanie czy one faktycznie działają. Istnieje
do tego specjalna paczka, która się nazywa storybook react router i teraz ją
sobie zainstalujemy naszym projekcie. W czasie jak
się instaluje podejrzymy sobie jak ona działa, teoretycznie jedyne co musimy zrobić to zaimportować
story router i dodać go jako dekorator w tym miejscu, więc
teraz przejdźmy sobie do naszego kodu zaimportujmy
sobie stary router, który zainstalowaliśmy, dodamy
tutaj dekorator, w którym zainicjujemy sobie nasz story router i teraz
jeśli odpalimy storybook'a
to nasz rauter powinien
zacząć działać. Okej,
poznikały nam nasze linki, więc coś chyba jednak poszło nie tak, sprawdźmy
czy to jest wina naszego button icon
czy może czegoś innego. Jeśli sobie wrzucimy
tutaj link, okej.
Chyba wiem czy czy co będzie przyczyną. Link
jest normalnie komponentem a, tag'iem a, a
tag a domyślnie jest inline'nowy, a
nasz button icon ma szerokość i wysokość czego
komponenty inline'owe nie rozumiemy, więc musimy tutaj dodać Display
Block i to powinno nam naprawić dokładnie i to nam
naprawiło całą sytuację i teraz
jak widzisz nasze actions logują
nam co się dzieje podczas klikania w poszczególne button'y. W
ten sposób widzimy, że nasz router działa i skoro
z tym już się uporaliśmy to teraz czas na ostylowanie tego sidebar'a,
ale to zostawiam Tobie jako zadanie domowe jako zadanie do wykonania,
ponieważ już wiesz dosyć o styled-components i wydaje mi się, że będzie
to po prostu dla ciebie przyjemne, żeby taki sidebar sobie samodzielnie ostylować,
ja tylko przejdę tutaj do design'ów, one również są dostępne jako załącznik do tego
kursu, natomiast jeszcze tutaj pokażemy, że sidebar
ma 153 piksele szerokości. Możemy też użyć do
tego jakiejś relatywnej względem naszego viewportu szerokości, natomiast moim
zdaniem on nie powinien się zmieniać w zależności od tego jaka będzie szerokość
naszego ekranu. Sidebary raczej powinny mieć jakąś statyczną
szerokość. No i oczywiście jest całą rozpiętość naszej,
naszego ekranu jeśli chodzi o wysokość. Jestem ciekaw jak ci to pójdzie, w następnej
lekcji sobie to podsumujemy i przejdziemy dalej do development'u naszej aplikacji.