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 przygotujemy sobie resztę naszego widoku user
page template tak, żeby stał się dynamiczny, żeby mógł odpowiadać na to w jakim
template'cie obecnie się znajduje, czy to będzie notatka czy artykuł czy
twitter, więc pierwsze co możemy zrobić moim zdaniem to tutaj podmienić
sobie ten nodes, ponieważ czasami to będzie twitter, czasami to będzie articles i na
szczęście podajemy sobie tutaj page type, który co prawda jest w liczbie pojedynczej, ale
to nie jest jakiś wielki problem, bo możemy po prostu zrobić tutaj Page Type
i dodać to s na końcu. Nie jest to może najpiękniejsze rozwiązanie,
ale na pewno jest po prostu banalne. Jedyne
co się zmieniło to to, że teraz mamy tutaj nodes małą literą, ale to też nie jest
jakiś wielki problem, bo możemy tutaj wykorzystać pseudo
element first letter, który pozwoli nam
na text-transform i stworzenie
wielkiej litery i teraz jak widzisz pierwszą
literę mam wielką resztę mamy małe, notes natomiast było zawsze
z małej tutaj, więc wszystko się zgadza, a teraz jak wyjdziemy sobie na twitter to mamy twitters
i articles, więc pod tym względem mamy to już zrobione. Możemy
sobie nawet wejść teraz do kolejnych kart
i zobaczyć czy to faktycznie będzie działać zasymulujemy
sobie już taki widok naszej aplikacji, zauważ, że wykorzystywanie
komponentów właśnie takich przygotowanych wcześniej z odpowiednimi props'ami sprawia,
że ten development w dalszym etapie tworzenia aplikacji bardzo
mocno przyspiesza, to jest po prostu jak układanie klocków lego już później,
jeszcze trochę co prawda nas czeka po stronie logicznej tej
pracy, natomiast sporą część pracy już mamy wykonaną, okej
i zauważ, że jednym szybkim ruchem udało nam się stworzyć takie
widoki, więc jest to naprawdę fajne. Teraz możemy sobie przyjść
do tego żeby nasze karty stały się dynamiczne, póki co one są
bardzo statyczne, nie przyjmują żadnych props'ów jeśli chodzi o content, jeśli chodzi
o zawartość. Natomiast trzeba to dość szybko naprawić, więc teraz molecules card
odpalimy sobie i zobaczymy co my tutaj mamy i co możemy zmienić.
Przede wszystkim musi mieć title, musi
mieć props'a created albo create date
coś takiego, dodatkowo
może przyjmować props'a twitter name article
URL i pewnie content, więc
teraz za nim sobie podany tutaj te props'y to wypiszmy je
po prostu w prop types i zastanówmy się jakie będą miały typy. Pierwsze to
oczywiście title, tutaj raczej nie będzie
żadnego problemu, to będzie po prostu wymagany string. Później wpiszemy
sobie jeszcze props'a created, który również będzie stringiem i również
będzie wymagany. Później możemy dodać jeszcze Twitter
account albo Twitter name po
prostu, będzie łatwiej, to również będzie string, ale
nie będzie wymagany. Jako default
możemy sobie tutaj wpisać po prostu null article url
to również będzie string, również będzie niewymagany i
podobnie jak twitter name będzie null'em
i został nam jeszcze content. Content
oczywiście będzie wymagany, bez contentu
się nie obejdzie. Teraz możemy sobie podmienić te
props'y tutaj w tym miejscu. Okej
mamy tytuł, twitter name, article url
i content. Teraz jeszcze żeby one
działały oczywiście musimy je sobie zdestrukturyzować, jeśli
czasami widzisz, że ESlint podkreśla ci jakieś wartości
i wyrzuca jakimś błędem to zazwyczaj nie ma sensu się tym przejmować,
ponieważ on po prostu czasami lubi się zawiesić po jakiejś chwili te
błędy powinny zniknąć. O, tak jak teraz. Okej, skoro z tej
strony już mamy wszystko zrobione to ja teraz przygotowałem tutaj w naszych
widokach takie obiekty z przykładowymi danymi, które możemy sobie
teraz propagować i wrzucić w odpowiednie karty.
Możemy to zrobić w taki sposób, że po prostu zmapujemy sobie to i
w
każdym miejscu wyplujemy właśnie kartę, która będzie zawierać
odpowiednie props'y. W tym przypadku będzie to card type, który
wpisujemy ręcznie, a resztę podajemy tak jak
mamy tutaj w naszych obiektach nie
zapominaj o tym, że zawsze musimy dodać jeszcze key, który jest unikalny
dla każdego itemu i tutaj możemy dać akurat tytuły bo one
są unikalne. Później w prawdziwym development'cie
będziemy mieć podawane id, które po prostu będziemy tutaj wrzucać. Zapomniałem
zamknąć naszą kartę. Okej, teraz podobną
rzecz zrobimy w każdym innym widoku, w notes. Tutaj
się pozbędziemy tylko article url bo tego nie ma i w twitters również
to podmienimy i tu akurat wrzucimy twitter name i
to co jest ważne o czym zapomniałem przy tworzeniu tutaj tych dynamicznych rzeczy
to, że tutaj podajemy tylko na końcu twitter name, ale
tak naprawdę musimy mieć ten avatars io gotowy,
czyli musimy podać cały link i tylko
końcówkę z naszą
zmienną okej i
w ten sposób powinno się to wyświetlać prawidłowo. Dobrze
przetestujmy to od razu tą naszą aplikację. Oczywiście
zaszczytne grono miło się znajdować przy takich
ludziach, tutaj widzę, że wszystko się wyświetla okej. Widzimy,
że nawet dłuższe nazwy wchodzą bez problemu wygląda to w porządku.
Okej, więc widoki
stały się dynamiczne nasze szablony dostosowują się
do tego co wyświetlają, jaki typ danych, więc do
zobaczenia w następnej lekcji gdzie przejdziemy do bardziej zaawansowanych rzeczy.