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 zajmiemy się wyświetlaniem odpowiedniej notatki po kliknięciu na kartę,
ponieważ teraz jest tak, że mamy tutaj wbitą na twardo po prostu notatkę i nic
innego nie możemy wyświetlać, więc żeby to zrobić musimy zrobić kilka
rzeczy, które wcale nie będą takie trudne, zaraz ci pokażę, jak możemy ten problem
rozwiązać. Pierwszym miejscem, w którym będziemy szukać jest oczywiście
nasz store, który powinien mieć pobrane wszystkie notatki, którymi dysponujemy,
żeby się do niego dostać będzie musieli wiedzieć na
jakiej ścieżce się znajdujemy, a właściwie chodzi tylko o twitters,
więc żeby wiedzieć jaki typ notatki wyświetla nasza aplikacja musimy wykorzystać tutaj
with context, w które
opleciony sobie nasz detail page. Zrobiłem
to, ponieważ musimy przefiltrować sobie nasz store pod względem notatek, których
potrzebujemy, więc teraz musimy jeszcze połączyć nasz komponent ze store'em,
stworzymy
sobie mapStateToProps i tym
razem oprócz samego state podamy tutaj jeszcze on props, to jest taki
specjalny parametr, który wyciąga nam props'y naszego komponentu
do mapstatetoprops. Będzie nam to potrzebne, ponieważ tutaj korzystamy
z props'a page context. Sprawdźmy
sobie czy on jest poprawnie przekazywany do naszego komponentu, tak page context
to twitters i teraz żeby nasz mapstatetoprops otrzymał
ten on props, to musimy inaczej niż zawsze opleść w nasze
komponenty, with context musi być tym razem tym Higher Order Component'em, który
jest na wierzchu, a context będzie wrzucony dopiero
do niego do środka. W ten sposób jeśli
sobie wylogujemy on props page
context to dostaniemy w konsoli twitters.
Wynika to z faktu, że to with context
dostarcza tej danej, która jest potrzebna w naszym mapstatetoprops, więc
jeśli with context byłby wewnątrz connect'a, to ten connect już by
nie dostał tych informacji, dlatego teraz zrobiliśmy odwrotnie i on jest
na wierzchu, więc w tym momencie możemy sobie zwrócić z naszego mapstatetoprops
active item, który
będzie dostawał się do state'u poprzez dynamiczny
klucz on props, page context, a następnie
w nim filtrował każdy
item w taki sposób, że porówna sobie item id do
kolejnego props'a który już znasz, czyli do match params
id, okej, dostaliśmy tutaj info, że match is not defind. Sprawdźmy
w takim razie co może być przyczyną tego problemu,
okej,
tutaj. Zapomniałem dodać on props i teraz jeśli
wrzucimy sobie naszego widok twitters i w naszym details page
usuniemy sobie tutaj te props'y bo one tak naprawdę nie były nam do niczego tutaj potrzebne,
one są potrzebne tylko tutaj jako on props, więc w tym momencie możemy
sobie wyciągnąć active item jako props w naszym
komponencie i jeśli
z poziomu naszej listy twitter'ów wejdziemy do notatki,
to ta
notatka dostanie tutaj active item z jednym elementem,
którym jest nasza notatka pobrana z naszego state'u. Różnica
jest tylko taka, że ona jest tablicą z jednym
elementem, więc to co możemy sobie zrobić to stworzyć
return wewnętrz naszej funkcji
komponentu, stworzyć const'a, który wyciągnie
nam item z active
item. W ten sposób destrukturyzujemy tablicę
i teraz jeśli wszystko dobrze poszło, to każdy dummy
artykuł możemy zamienić na item i zarówno title
jak i content i każdą inną rzecz, która tutaj będzie potrzebna,
ten item powinien zawierać. To jest normalne i za chwilkę sobie
do tego przejdziemy. Musimy za każdym razem wchodzić do tej notatki z poziomu widoku
naszych notatek, czyli z tego dashboardu i teraz jak widzisz, notatka
została wyświetlona poprawnie, mamy tutaj Dan'a Abramov'a, jak
wejdziemy sobie tutaj, to wyświetla się Hello Roman, czyli
ten filter tutaj działa poprawnie, wysyła nam odpowiednią notatkę,
porównując id, które mamy w naszym match
params id, czyli tutaj w url'u do id, które
znajduje się w naszym storze. Schody zaczynają się właśnie w momencie kiedy teraz
odświeżamy sobie stronę, w momencie kiedy ktoś wejdzie
do naszej notatki, z poziomu takiego adresu, musimy dodać kolejną
logikę do naszego komponentu, ale tym zajmiemy się już w następnej lekcji.