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 tej lekcji przechodzimy już do tej bardziej wizualnej części
naszej aplikacji, mianowicie zajmiemy się tym, żeby w łatwy
sposób móc tworzyć komponenty, które później będziemy sklejać w całość, pokażę
ci w tym kursie takie jedno z ciekawszych podejść do projektowania aplikacji, które
nazywa się Atomic Design, które polega właśnie na tym, że wybieramy
sobie takie najmniejsze elementy aplikacji, które możemy znaleźć jak na przykład pole input'u
albo baton a następnie na bazie tych malutkich komponentów
tworzymy nieco większe i większe i większe, a dopiero później te większe
konstrukcje sklejemy w całość w tak zwane template'y ale o tym dopiero
później ci opowiem. Na razie chcę ci powiedzieć jakie narzędzie umożliwi nam
to, żeby w ogóle do tego dojść i jakiś czas temu w ekosystemie React'owym pojawiło
się fascynujące narzędzie, które odzwierciedla tak zwane podejście css-in-js
i to narzędzie nazywa się style components, pozwala nam na napisanie
stylów w naszych plikach JS i uwierz mi to początku
tylko brzmi jak bardzo zły żart, jak zobaczysz jak to działa w praktyce to
jestem pewien, że się w tym zakochasz. Teraz pokażę ci czym jest style components
i właściwie po co nam one są potrzebne. Jest to biblioteka,
którą możemy zainstalować w naszym projekcie, która umożliwia nam nie więcej,
nie mniej jak pisanie naszych stylów właśnie w JavaScripcie i jak
widzisz używanie JavaScriptu wewnątrz stylów to jest naprawdę fascynujące, pokażę
ci krok po kroku jak tego używać i co dzięki temu możemy zrobić, a
czego nigdy nie moglibyśmy osiągnąć w zwykłym CSS'ie, a nawet w Sass'ie, style components,
podobnie jak css-modules, o którym mówiłem w poprzednim kursie pomaga
nam w kilku rzeczach. Na przykład w tym żebyśmy nie mieli konfliktów między nazwami klas, więc
tym się nie musimy martwić, style components automatycznie dodaje takie id do
każdej klasy i zapobiega dzięki temu mieszaniu się tych klas i nadpisywaniu
się jednej przez drugą, także może mieć na przykład w każdym komponencie
klasę wrapper, a właściwie to tej klasy nawet nie będzie ponieważ, my
nie nazywamy klas i to też jest taka rewolucja w styl components. My nazywamy całe komponenty, w
style component's wszystko jest komponentem i to również brzmi jak z żart
tylko na początku, uwierz mi dodatkowo. Dodatkowo style components są dużo łatwiejsze
w utrzymaniu, automatycznie dodają wszystkie prefiksy, które są potrzebne, pozwalają
właśnie na dynamiczne stylowanie dzięki temu, że mamy wewnątrz CSS JavaScript
i wiele, wiele innych rzeczy, o których możesz poczytać właśnie w tej dokumentacji i
zanim przejdziemy dalej i pokażę ci tak krok po kroku w detalach jak
to tak naprawdę działa to pokażę ci tutaj na szybko, ponieważ mamy takie snippet'y kodu, które
możemy sobie edytować jak wygląda taki style components, na przykład w tym
miejscu, mamy właśnie taki typowy style component, składa się on z tego, że
deklarujemy const'a, którego nazywamy jako komponent, tu jest ważne to,
żeby component był wielką literą napisany, ponieważ tego wymaga React, następnie
wykorzystujemy obiekt style, który importujemy do naszego pliku i on
ma metoda odpowiadającą każdemu elementowi html'a, więc tutaj wpisujemy jego
nazwę to może być section, to może być button, to może być H1,
to może być p, cokolwiek. Zróbmy sobie na przykład button i następnie,
to jest bardzo ważne, po tym button'ie czy po jakimkolwiek innym elemencie, który tutaj deklarujemy,
otwieramy backtick'i, ponieważ ten style component's wykorzystują tak zwane
tag template literal, o których możesz poczytać sobie więcej na npm'ie i
taki zupełnie w podstawowej wersji, to co piszemy tutaj wewnątrz
tego string'a to po prostu nasze CSS'y i dzięki temu,
że edytory wspierają syntax style, component's, one
są normalnie podświetlane również jak CSS i wszystko wygląda dokładnie tak samo, więc wpisze
się to naprawdę wygodnie, teraz spróbujmy coś zmienić, spróbujmy na przykład zmienić
padding tego button'a na 2m i widzisz, że od razu zmiany się tutaj zapisały
i widzimy efekty tego co wpisałem tutaj, w naszym edytorze, powiedzmy
że na przykład chciałbym dodać border, który ma 3 piksele. Jest
niebieski i tutaj mamy taki uproszczony syntax komponentu
React'owego, mamy po prostu funkcję render, która nam zwraca tego JSX'a, oczywiście
w React'cie wygląda to nieco inaczej, tutaj twórcy pewnie stworzyli to na potrzeby
właśnie tego przykładu, żeby to było uproszczone, natomiast nasz wrapper jest
właśnie tutaj w tym miejscu, więc używamy go dokładnie tak samo, jak
na przykład component'u ,który moglibyśmy zaimportować do naszego pliku z innym
komponentem albo z jakimś widokiem. W tym przypadku akurat zadeklarowaliśmy ten
komponent w tym miejscu. Niemniej ten wrapper, w momencie kiedy użyliśmy
tego tutaj styled stał się pełnoprawnym komponentem React'owym.
Co to znaczy? To znaczy, że na przykład możemy podawać mu props'a i dzięki tym propsom,
które podajemy możemy później zmieniać nasz CSS, ale to pokażę ci już następnych
lekcjach.