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 stworzyliśmy sobie akcję, która autoryzuje
naszego użytkownika i pewnie
zauważasz tutaj dziwną różnice. Pojawiły się takie const'y, które
mają string'i o takiej samej zawartości jak one same się nazywają. Wynika
to z faktu, że zawsze kiedy posługujemy się jakimi wartościami, które są
string'iem to bardzo łatwo o literówkę, jakąś pomyłkę i nigdzie
JavaScript nam nie powie, że coś zrobiliśmy źle, jeśli to faktycznie jest
w string'u więc zawsze tego typu wartości warto wrzucać
do const'ów, które po prostu używamy zamiast tych samych string'ów,
ponieważ wtedy jeśli pomylimy się w nazwie const'a to od razu
dostaniemy błąd, że nie ma takiego consta, że to jest undefined po prostu,
więc jest to dużo bezpieczniejsze i stosuje się to zarówno w akcjach,
ale importuje się to także do reducer'a. Dlatego
tutaj pojawiły się te importy. Teraz możemy
tutaj na przykład podmienić właśnie add item i remove
item, a dodatkowo skoro już jesteśmy w reducerze
to możemy jeszcze zrobić kolejny case, czyli authentication success. W
momencie kiedy nasz użytkownik zostanie
zalogowany, chcemy zwrócić
nasz state, a przy okazji zapisać
jego dane. Jeśli zerkniemy sobie na nasz
response tutaj, to zauważymy, że mamy username i id, więc
stwórzmy sobie teraz tutaj user i wprowadzając poprzedni state
nadpiszemy tym samym user id, my nie musimy się tutaj martwić
o poprzedniej stan user id, ponieważ po zalogowaniu on zawsze będzie
jakiś inny, zależnie od tego jaki user się zaloguje do naszej aplikacji i
teraz na podstawie obecności user id jesteśmy w stanie
określić czy nasza aplikacja autoryzowała tego użytkownika. Jeśli
tak to powinien zostać przekierowany do aplikacji i teraz tutaj słowo
wyjaśnienia. Nie będziemy tutaj stosować takiej bardzo skomplikowanej
autoryzacji w tej aplikacji razem z chronionymi z route'ami,
które nie pozwalają wejść w jakąś część aplikacji, jeśli użytkownik
nie jest zalogowany. Generalnie jest to temat na kolejny
kurs, bardziej zaawansowany, ponieważ tutaj staram się wyjaśniać nieco
bardziej zaawansowany, acz nadal nieco proste koncepty. Nie
wchodzimy jeszcze tak głęboko tutaj bezpieczeństwo aplikacji i tego
typu rzeczy. Bardziej po prostu pokazuje co możemy zrobić w React'ie
w nieco bardziej zaawansowany sposób, więc teraz jeśli wrócimy sobie do
naszego login page, to możemy zrobić coś takiego, że
stworzymy sobie funkcję mapStateToProps,
z naszego state'u
wyciągniemy sobie user id, które
jeśli go nie będzie to będzie nullem i teraz
to map state to props możemy podać jako pierwszy parametr w naszym connect'ie. Dodatkowo
możemy go sobie zdestrukturyzować tutaj. Ten user id, który tam
podajemy i sprawdźmy tylko czy ten user id faktycznie
się pojawia, więc tutaj zrobimy sobie heading i teraz
jeśli podam my user password raz dwa trzy to
po zalogowaniu ten user id powinien się pojawić
nad naszym nagłówkiem i faktycznie się pojawił, więc
skoro mamy to zrobione to możemy teraz na podstawie tego, tej
obecności tego user id sprawić, że wyrenderuje
nam się redirect, za importujemy sobie więc tutaj tego redirect'a
i w naszym komponencie zwrócimy
taki warunek, że jeśli jest
user id jest obecne wtedy niech
zwróci nam komponent redirect, prowadzący
do naszej strony głównej. Teraz, jeśli to dobrze
działa to po zalogowaniu zostaniemy
przeniesieni i tak się właśnie stało, więc
skoro taką powiedzmy atrapę logowanie mamy już za sobą, to teraz
w następnej lekcji zajmiemy się komponentami naszych
notatek i integracją ich z API.