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ę stworzyć nowego props'a do naszego
card komponentu, który deklaruje nam jaki kolor
będziemy używać, a deklaruje to na podstawie funkcji, którą będzie pełnić
czy będzie to notatka czy będzie to twitter czy będzie to article i teraz chciałbym przejść
do kolejnego etapu, w którym będzie mieć jeszcze dodatkowe dwa elementy jednym będzie
zdjęcie, będzie miniaturka twitter'owa, a drugim będzie link do artykułu,
do którego nawiązuje dana karta, więc teraz musimy
sobie stworzyć tak naprawdę dwa małe styled-components, które będą osobno
wyświetlane tutaj w tym miejscu. Pierwszym z nich będzie styled avatar,
który będzie po prostu obrazkiem, jak
zerkniemy sobie na design'y, ten obrazek ma 86 pikseli.
Dodatkowo
ma jeszcze ramkę, więc
możemy mu nadać border i wyciągniemy
sobie Active
Color oraz theme, a właściwie to nie musimy tego wyciągać,
ponieważ to jest ramka, która się pojawia tylko przed twitterach, więc właściwie możemy
użyć tylko theme twitter. Dodatkowo
nasz Avatar będzie pozycjonowany absolutnie, ale
żeby to działało to musimy się upewnić że nasz inner wrapper, czyli rodzic
jest pozycjonowany relatywnie, w ten
sposób możemy zadeklarować, że odległość od prawej strony będzie
wynosić 20 pikseli i podobnie
z górą, więc tutaj robimy, powiedzmy, dajmy
na razie 25 pikseli, zobaczymy jak to będzie wyglądać i od góry podobnie
25. Tutaj mamy jakiś
błąd w naszej funkcji, okej, o jedną
klamrę za wiele i teraz jeśli mam już ostylowany nasz Avatar. Możemy
sobie go przetestować i teraz
do pobierania to twitter'owych avatarów znalazłem taki serwis, nazywa
się avatars io, w którym wystarczy, że podajemy
nazwę konta, a on nam skopiuje cały
Avatar, musimy jeszcze tutaj dodać border radius, ok i sprawdźmy
czy to w ogóle jakkolwiek wygląda. Jest prawie dobrze z tym
tylko wyjątkiem, że nie widzimy tego wystają
tego czubka naszego kółka i prawdopodobnie
wynika to z tego, że po prostu ten dolny przykrywa nam ten górny pasek,
więc teraz możemy zrobić jeszcze coś takiego, że
podamy sobie, że pierwszy z komponentów inner
wrapper będzie miał z-index dajmy mu jakieś wysoki,
okej i teraz ten górny przykrywa nam ten dolny
i widzimy też nasz avatar, który nam wystaje z tym tylko,
że ten border jest trochę za cienki możemy tutaj dać
spokojnie pięć pikseli, myślę że to będzie okej i teraz jeśli
wrócimy sobie do naszych design'ów, to zobaczymy, że mamy jeszcze w trzecim rodzaju naszej
karty, czyli w artykule, memy link w postaci takiego
guzika z ikoną linku. W zasobach do tej
lekcji pojawił się już link svg, więc teraz go sobie zaimportujemy tutaj
i stworzymy
sobie ostylowany link, który będzie
miał 47 pikseli i teraz
jako tła możemy sobie użyć dwóch wartości, pierwszy to będzie właśnie white,
a drugi to będzie URL, z którego wyciągniemy sobie zaimportowany
link icon. Okej,
skoro mamy teraz już te dwa elementy w naszym JSX'ie to musimy dodać pewną logikę,
która nam pozwoli na to, że będą one wyświetlane warunkowo, otworzymy
sobie teraz klamry i stworzymy takie, taki warunek. Jeżeli card type
będzie twitter'em to wyświetlimy Avatar, a jeśli
card type będzie artykułem, no to wyświetlimy link do artykułu i w
tej chwili w naszym storybook'u powinniśmy zobaczyć tak,
w artykułach mamy link, który działa
tylko, że wygląda źle. Jest jeszcze nie ostylowany, więc teraz tutaj
wydaje mi się że musimy tutaj stworzyć wielkość
50%, background position ustawimy na
50%, może być
troszkę większy i podobnie jak nasz Avatar
musi mieć pozycję absolutną, okej i
teraz znajduje się idealnie na środku, więc mam już ostylowanie
trzy rodzaje naszego komponentu karty. Możemy przejść
do dalszego rozwoju naszej aplikacji.