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ć nasz pierwszy styled-components, który
jednak w żaden sposób nie przypomina tego, co mamy w naszych design'ach, więc
teraz sprawdzimy, żeby te button'y, wyglądały dokładnie tak jak w design'ach a przy
okazji pokażę ci jak możemy przekazywać props'y do style-components, aby
wpływać na to jak wyglądają, jaki mają rozmiar i tak dalej, więc teraz stworzymy sobie style
dla tego button'a, czyli tego większego, będzie button domyślny, natomiast
ten mały będzie dostawał faktycznie props'y, które będą wpływać na jego
wygląd. On ma szerokość 220 i wysokości 47,
więc teraz wejdziemy sobie do komponentu button, wywaliło
mu border oraz sprawimy, żeby miał zaokrąglone
krawędzie, okej.
Kolejna kwestia to oczywiście font, którego tutaj używam, jest to
Montserrat, który jest Google fontem. Za chwilkę pokażę ci jak możemy załadować font'y do
naszego projektu. Natomiast teraz, jeśli nie masz Montserrat zainstalowanego
lokalnie to pewnie włączy się jakiś inny font, który będzie zastępczy,
natomiast tym się nie przejmuj i za chwilkę i tak będziemy ustawiać ten Montserrat jako
font w naszym projekcie, więc teraz sprawdzimy
sobie, to jest 16 Montserrat semibold. Sprawdźmy,
to jest napis Close, Save i wszystkie
button'y w design'ach są pisane wersalikami, czyli wielką literą, więc teraz
żeby oszczędzić sobie pomyłek i w razie gdyby ktoś zapomniał wpisać te
wersaliki, możemy po prostu zmienić tutaj text-transform uppercase. Okej,
teraz skoro nasz button wygląda już tak jak w design'ach, to teraz możemy przejść do tej
drugiej opcji, którą będziemy sterować za pomocą props'ów, czyli
tutaj zmieniają się tak naprawdę dwie rzeczy możemy nazwać ten button po prostu
secondary i wtedy na podstawie tego props'a, który będzie mu przekazać, czyli
właśnie on się będzie nazywał secondary, będzie się zmieniał jego wygląd, będzie szary,
będzie mniejszy i font też będzie mniejszy czyli
teraz stwórzmy sobie drugą instancję tego, nazwijmy
to Remove i po
prostu podajmy mu props'a secondary. Jak pamiętasz w taki
sposób podany props to jest to samo co coś takiego. Jeśli
taki props się znajduje to znaczy, że on jest true, więc
teraz wrócimy sobie do button'a i propsy, podawane
w komponentach, styled-components wyciągamy za pomocą funkcji strzałkowej
i teraz jak to wygląda, weźmy sobie na przykład color
i teraz pamiętaj, że piszemy to wszystko
w template literal, czyli możemy tutaj otworzyć ze znakiem dolara
i klamer, po prostu na przykład funkcje strzałkowe, w taki
sposób, więc teraz background color
otworzymy sobie coś takiego. Wpiszemy tutaj
funkcję strzałkową, wpiszemy
props następnie props secondary i stworzymy
tutaj ternary operator, jeśli props jest secondary to
taki będzie kolor tego button'a. Natomiast jeśli jest
nie-secondary, czyli jest domyślny, wtedy
użyjemy koloru żółtego i w ten sposób mając
te dwa button'y, ten drugi jest secondary, jak teraz zobaczymy, to ten jeden jest żółty,
a drugi jest szary. Można tutaj jeszcze dokonać
jednego usprawnienia, bo props to jest oczywiście ten taki generalny obiekt props'ów,
który podajemy. Jeśli props'ów jest więcej to faktycznie możemy wtedy zastosować
coś takiego, natomiast jeśli wiemy, że props, który podajemy nazywa się secondary, to
możemy go po prostu zdestrukturyzować w tym miejscu i podać
go w ten sposób i działanie tego jest dokładnie takie samo. Teraz
zmieńmy jeszcze dane dotyczące wymiarów i fontu
w tym button'ie wymiary to 105 x 30, a font to 10.
Możemy
skopiować sobie tę funkcję do tej linijki. po prostu podmienić
wartości. Czyli domyślny to będzie 16, a secondary
będzie miał 10 pikseli. Została nam jeszcze szerokość i wysokość, okej
i po takich zmianach nasz button powinien wyglądać właśnie, właśnie tak,
więc wszystko się zgadza i w ten sposób możemy podawać props'y,
które są bujana mi tak zwanymi, czyli właśnie wartościami true albo false
do naszych komponentów, w ten sposób. Jest to bardzo proste i naprawdę
bardzo wygodne kiedy właśnie stosujemy tego typu rozwiązanie,
ponieważ później w tym syntax'ie JSX'a w tej składni mamy
bardzo duży porządek, bo mamy tylko po prostu dwa button'y, one nie mają żadnych dodatkowych
prac, żadnych warunków tutaj wewnątrz, tak jak w CSS modules czasami tak bywa. Mamy
po prostu props'a secondary, a z całą logiką radzi sobie już
później tutaj style-components, w następnej lekcji pokażę
ci, jak możemy podejść do tego od trochę innej strony.