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ć nasze dwa batony
i za pomocą propsów, a właściwe jednego props'a secondary potrafimy zmienić
kilka jego właściwości. Przez to wygląda inaczej, jest mniejszy, jest
szary i ma inny rozmiar fontu, natomiast jeśli spojrzymy sobie na strukturę
naszego kodu, to to mocno dość się skomplikował mamy tutaj aż 4
funkcje strzałkowe i być może jest jakiś lepszy sposób na to, żeby tego
uniknąć, żeby sprawić, żeby ten kot był trochę bardziej suchy, jak to
się mówi, czyli dry mówimy don't repeat yourself, więc sprawdźmy
co możemy z tym zrobić, oczywiście funkcje strzałkowe style-components możemy
otwierać nie tylko jako właściwości tutaj w tym miejscu, możemy
otworzyć w dowolnym miejscu, ponieważ jest to nic innego jak po prostu, czysty JavaScript
i nic nas tutaj nie ogranicza. Możemy tutaj wrzucać consol logi, funkcje co
tylko nam się marzy, więc teraz spróbujmy zdestrukturyzować tego props'a
w tym miejscu i zwrócić go w tym miejscu, to
co moglibyśmy zrobić to
przenieść to do nowej linijki i stworzyć warunek w taki sposób, podając
tutaj dalszą część definicji CSS'owych,
czyli te wszystkie rzeczy, które tutaj mamy w tym ternary operator możemy
po prostu przenieść w to miejsce bez żadnych już funkcji strzałkowych, po prostu jako definicję,
taką zwykłą w CSS'ie i wynika to z tego, że taki operator warunkowy jeśli
ma dwie rzeczy obok siebie to jeśli ta pierwsza jest prawdziwe i druga
jest prawdziwa to zwraca zawartość tej drugiej, więc w naszym przypadku właśnie
o to nam chodzi, żeby ta funkcja zwróciła nam zawartość tego, co tutaj wpiszemy,
więc teraz bardzo szybko przeniosę wszystkie te wartości tutaj
do tego miejsca. Jedyną rzeczą, którą tutaj jeszcze musimy zrobić, żeby style-components
to lepiej ogarnęło, to musimy tutaj dodać CSS, który zaimportujemy
sobie z naszego style-components. Jest to po prostu wymóg
tej biblioteki i dzięki to to będzie działać poprawnie. Okej, a teraz przyniosę
te wszystkie rzeczy. Jak
już to zrobiłem to teraz mogę pozbyć się tych funkcji strzałkowych i
ten sposób nasz kod jest nieco bardziej ustrukturyzowany
i uporządkowany ponieważ od razu widzimy co dotyczy opcji
secondary, więc nie musimy tutaj 10 razy wpisywać tych funkcje
strzałkowych, które również są przydatne i bardzo dobre tylko akurat w tym przypadku, łatwiej
było to zrobić w ten sposób i skoro te część podawania props'ów
do style components mamy już ogarniętą to zaraz mogę ci pokazać drugą rzecz, która również
jest bardzo fajna, bo wyobraźmy sobie, że na przykład w tym podstawowym
kształcie button'a chcielibyśmy, żeby użytkownik czy też programista,
który będzie to dalej pisał mógł wpływać na to jaka
długość będzie tego button'a i moglibyśmy faktycznie zrobić tak, że
mielibyśmy tutaj kolejnego psa typu very
long i on wtedy tutaj by zmieniał coś, ale jest jeszcze inna opcja,
możemy po prostu mu podać props'a, który będzie przechowywał
jakąś wartość, więc teraz po prostu wpiszmy tutaj width i
podajmy tutaj na przykład 500 pikseli i
oczywiście w naszej aplikacji póki co nic się nie zmieni, ponieważ tego
props'a musimy jeszcze przetworzyć właśnie po stronie style-components i teraz
w tym miejscu możemy sobie znowu utworzyć naszą klamrę, podamy
tutaj funkcję strzałkową, zdestrukturyzujemy sobie
width, ponieważ tylko na tym props'ie nam zależy i teraz możemy zrobić
coś takiego, że jeśli mamy width to zwracamy to width, a jeśli
go nie ma to dajemy tutaj operator or i robimy
to w ten sposób, czyli destrukturyzujemy sobie props'a width, którego
podajemy w tym miejscu, on przechowuje wartość 500 pikseli i teraz
jeśli on go sobie tutaj wyciągniem to go zwróci. Natomiast, jeśli go
nie ma to wtedy mówimy, że jeśli go nie ma no to spoko, to
wtedy zastosuj domyślą wartość 220 pikseli i nasz
button faktycznie ma teraz 500 pikseli, jeśli coś zmienimy, jeśli
będziemy chcieli żeby miał 20 pikseli no to będzie wyglądał okropnie, ale
też możemy to zrobić, więc to jest taki drugi sposób na podawanie props'ów,
czyli psów, które przechowuje jakoś wartość, a poprzednie props'y
to były props'y, które były po prostu bulianami, czyli wartościami true albo
false i to tyle jeśli chodzi o podawanie props'ów a w następnej lekcji pokażę
ci jak dodać globalne style do naszego projektu, w taki sposób
żebyśmy mogli na przykład mieć właśnie ten font, o który obiecałem, że za chwilkę zainstalujemy,
także montserrat będziemy instalować w następnej lekcji.