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 wytłumaczę ci czym jest ESlint,
dlaczego potrzebujemy go w naszym projekcie i dlaczego sprawi on, że nasz kod po prostu
będzie ładniejszy, będzie lepszy, będzie też mniej zawodny, ESlint
to inaczej, ESlint
to narzędzie do tak zwanej statycznej analiza kodu, czyli takie
narzędzie, które podczas pisania kodu sprawdza ten kod właściwie testuje
go pod kątem pewnych zależności pewnych zasad a następnie
pokazuje nam efekty swojej analizy albo w terminalu albo jeśli mamy
odpowiedni plugin to pokazuje go również w edytorze i teraz pokażę
ci jak to wszystko skonfigurować żeby to działało razem z create-react-app, więc
teraz przejdziemy sobie do edytora i pierwsze co
zrobimy to wejdziemy sobie do zakładki extensions, a następnie
wpisz tutaj ESlint. Teraz
musimy go zainstalować i
tak
jak widzisz we wskazówce tutaj będziemy potrzebować w naszym folderze projektowym
pliku ESlint rc, jest to taki plik konfiguracyjny, w którym
znajdują się wszystkie zasady dotyczące właśnie ESlint'a, domyślnie
w create-react-app znajduje się on w pliku package json, natomiast my
sobie go wyrzucimy stąd, właściwie wytniemy ten
fragment, bo on nam się przyda. Wyrzucimy tę konfigurację stąd, stworzymy
nowy plik kropka ESlint rc. Uwaga
kropka Jest na początku tego pliku i tutaj
wkleimy extends react app, za chwilę przyjedziemy do tego żeby troszkę
więcej jeszcze tutaj dopisać. Dla pewności sprawdzimy czy nic
się nie wywala czy to działa. Uwaga
nie byłem w folderze z moim projektem, więc
jeszcze raz npm start. Jak
widzisz projekt się uruchamia, tak, nic się nie zepsuło. To
co chcemy zrobić to dodać pewien zestaw zasad, które jeszcze
wzmocnią jakby to sprawdzanie i dążenie
do tego żeby nasz kod miał jak najwięcej takich dobrych praktyk i zazwyczaj
do tego typu rzeczy używa się takiej paczki przygotowanej przez airbnb tak
to tych airbnb od fajnych domków nad jeziorem. Jeśli
sobie teraz wejdziemy i wpiszemy ESlint airbnb to
zobaczymy, że mają swoją paczkę i żeby
ją zainstalować będziemy musieli dodać jeszcze kilka innych paczek, kilka
innych zależności, które są właśnie potrzebne do tego, żeby ESlint
config airbnb działał i to jest ESlint ESlint plugin import plugin
react plugin jsx i moglibyśmy to z łapy po prostu
jedno po drugim wpisać, a możemy też użyć npx'a, którego już wcześniej
używaliśmy. On tutaj ma taką komendę install-peerdeps,
która pozwala na zainstalowanie automatyczne wszystkich dependencji,
które są potrzebne do tego, żeby ta paczka działała, więc teraz przykleimy
sobie po prostu to po do terminala i zaczekamy,
aż to wszystko się zainstaluje. Okej,
jak widzisz wszystkie paczki zostały tutaj dodane i
teraz to, co możemy zrobić to dodać
nowy plugin do
naszej konfiguracji eslintrc. Żeby to zrobić musimy tutaj utworzyć
tablice, która będzie zawierać react-app oraz
airbnb i w
tym momencie, jak odpalimy sobie nasz terminal i wpiszemy npm
start to powinna się włączyć nasza aplikacja React'owa, ale
niestety mamy błąd, wynikający z tego, że create-react-app
potrzebuję ESlinta bardzo określonej wersji czyli
5.12, a my mamy
wersję 5.3.0, czyli najnowszą. Żeby to naprawić po prostu
musimy odinstalować 5.3.0 wpisujemy npm
uninstall eslint. Możemy od razu dodać
npm install eslint,
usuwamy
tego eslinta, a następnie
dodajemy tego w odpowiedniej wersji wpisując npm install eslint
małpa 5.12.0, okej.
W tym momencie jak odpalimy sobie npm start to nasza apka powinna już
się włączyć. Tak jest, wszystko działa.
Dodatkowo
teraz jeśli wejdziemy sobie jakieś komponent to reguły dodane
przez airbnb powinny zacząć działać, okej
i już widzę, że nie działają, a powinno się to pojawić kilka rzeczy jeszcze zrobię
kilka błędów, żeby się upewnić. Tak nic się nie pojawia. Spójrzmy na mają
strukturę plików. Jakimś cudem ESlintrc wyskoczył mi poza
katalog z moim projektem, więc muszę go po prostu tutaj wciągnąć.
Pamiętaj, że on nie ma się znajdować w folderze src tylko w tym takim gównym
root'owym folderze z projektem i teraz jak
to przyciągnąłem to nagle wszystko podkreśliło
mi się na czerwono, co oznacza, że nasz ESlint zaczął działać. Jak sobie zobaczymy
tutaj, widzimy że brakuje nam średnika. Takie
proste błędy jesteśmy w stanie naprawić dzięki skrótowi, jak
sobie włączę Command Shift i auto fixable problems,
jak to nacisnę to średnik sam się pojawi, czyli wszystkie
takie bardzo proste błędy wynikające właśnie z zapomnianego średnika albo
dodanej spacji w niewłaściwym miejscu można naprawić dzięki temu
właśnie skrótowi. Ja go mam podpiętego pod skrót Shift
Command Alt P, ale możesz to sobie powodu podłączyć pod jakikolwiek
dowolny skrót klawiszowy w ustawieniach swojego edytora. Możesz to
zrobić włączając preferencje, możesz
to zrobić otwierając preferencje skrótów klawiszowych i tutaj
jak piszesz eslint, to jest coś takiego jak
fix all auto-fixable problems, jak to naciśniesz, to
tutaj możesz włączyć sobie dowolny skrót klawiszowy, który te błędy
będzie automatycznie naprawiał. Natomiast mamy też drugi typ błędów, które
nie są samonaprawialne i tymi błędami są takie poważniejsze związane
z jakąś tam strukturą pliku, na przykład ten komponent nie powinien
być klasą. On nie ma żadnego state'u, więc nie ma potrzeby, żeby był klasą, dlatego ESlint
mówi nam wyraźnie, że to powinna być czysta funkcja i powinniśmy to teraz
naprawić i tym właśnie zajmiemy się w kolejnej lekcji, gdzie zobaczymy
czy ESlint w ogóle jeszcze czymś potrafi nas zaskoczyć. Do zobaczenia
w następnej lekcji.