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 ostatniej lekcji naprawiliśmy błędy związane ze
ESlintem, ale zauważyliśmy też, że pojawiają się nowe błędy,
których linter czasami po prostu nie potrafi naprawić i żeby się z
nimi uporać możemy dodać nową paczkę do naszego projektu nazywa
się ona prettier i pierwsze co zrobimy, to zainstalujemy sobie rozszerzenie
do naszego VScode'a, który właśnie tak się nazywa i w ten
sposób będziemy mogli dokonywać autoformatowanie naszego kodu, podobnie
jak robi to ESlint w przypadku błędów, który potrafi naprawić i robi to prawidłowo,
więc teraz wrócimy sobie do naszych plików, jeśli
otworzę sobie panel z opcjami i wybiorę
format document, to zauważysz, że linijki
które były do tej pory za długie, nagle uzyskały poprawną długość natomiast
apostrofy, które były poprawne przy importach nagle zmieniły się z
powrotem na cudzysłowie, jeśli teraz zrobię Command S, czyli
zapiszę plik to ESlint z powrotem zmieni na na apostrofy,
a jak sformatuję to na nowo to
zmieni się z powrotem na cudzysłowie i tak w kółko, czyli mamy konflikt między
ESlintem a prettier'em. Jest to całkiem normalne, ale nie martw
się, wyjdziemy z tego bez szwanku. Pierwszą rzeczą, na którą możemy sobie spojrzeć,
jest właśnie informacja o plugin'ie prettier, która
mówi nam, że jeśli nie ma żadnego pliku konfiguracyjnego to
prettier bierze sobie konfigurację z ustawień naszego edytora
kodu. Jak sobie wejdziemy tutaj w ustawienia i wpiszemy prettier to
zobaczymy, że faktycznie wszystkie reguły prettier'a znajdują się tutaj w konfiguracji
i możemy je poustawiać, natomiast problem z tym jest taki, że jeśli pracujemy na
przykład w kilka osób na jednym projektem to jedna osoba może
mieć coś włączone, druga wyłączone i dojdziemy po prostu do bardzo
nie fajnych doświadczeń, gdzie będziemy mieć spore konflikty między
poszczególnymi komputerami, jeśli chodzi o ustawienia właśnie prettier'a, więc
żeby temu zapobiec stworzymy teraz plik konfiguracyjny, podobnie
jak ESlintrc, prettier ma swój, który się nazywa uwaga prettier rc,
również z kropką na początku i dzięki
temu, że stworzyliśmy ten plik, nasz edytor kodu będzie miał takie źródło
prawdy, podobnie jak ESlint i wszystkie inne narzędzia, które skonfigurujemy
będą mogły korzystać z tego prettier rc, żeby wiedzieć Jakimi
zasadami kieruje się prettier i z racji, że zainstalowaliśmy wcześniej
plugin do naszego edytora, teraz jak otworzymy sobie klamry json'a, to
jak będziemy chcieli wpisać jakąkolwiek zasadę, to ona zostanie nam elegancko
podpowiedziana i teraz my chcemy, tak naprawdę, dwie rzeczy tutaj zrobić
single quote, ustawiamy
na true, czyli wszystkie stringi będą z apostrofem,
a nie w cudzysłowie trailingComma, tutaj
dajemy all i dzięki temu będzie mieć zawsze średniki na końcu linijek i może
jeszcze dodamy tutaj długość linijki maksymalną, na 100
znaków, okej i z racji, że to już mamy dodane, to teraz jeszcze
musimy skonfigurować naszego ESlint'a, żeby nie wchodził w konflikty z naszym
prettier'em, ponieważ teraz niektóre reguły mogą na siebie nachodzić i wpływać
na siebie przecząco, więc żeby tego uniknąć dokonamy
kilku zmian w naszej konfiguracji ESlinta, wywalimy sobie React'a, a następnie
doinstalujemy kilka paczek, które pozwolą nam na poprawną konfigurację naszego
prettier'a względem ESlinta, npm install, paczki
deweloperskie eslint config
prettier oraz prettier, to
sobie zainstalujemy i w czasie kiedy to się instaluje tutaj dodamy
dwie rzeczy. Pierwsza to będzie prettier i ta
zasada, właściwie rozszerzenie zasad ESlinta mówi,
że jest link od tej pory nie będzie wchodził w konflikt z regułami prettier'a
i druga dotyczy już samego React'a, okej
i z taką konfiguracją na razie to wszystko zostawimy, to powinno działać. Oczywiście
wcale nie musi. Na tym polega piękno konfiguracji projektu, że w
każdym momencie wszystko może się wysypać ale tego typu błędy będziemy po prostu
na bieżąco naprawiać, także bądźmy na to gotowi, ten kurs może
sobie pozwolić na taką dozę szaleństwa, zobaczymy co nas czeka. Podobnie
zresztą jeśli będziemy mieli taką potrzebę, możemy zawsze rozszerzyć tutaj
zakres zasad, którymi się kierujemy. To są oczywiście dodatkowe zasady,
które sami dopisujemy, bo oprócz tego, mamy jeszcze cały zbiór zasad skonfigurowany
tutaj w miejscu. Wróćmy teraz sobie tylko na szybko do app js i
zapisujemy ten plik. Zaimportujemy
komponent, którego nie potrzebujemy, wywalimy średniki i na
przykład dodamy jeszcze tutaj jakąś właściwość, a te
linijkę zrobimy za drugą i teraz jeśli wszystko
pójdzie dobrze, to po sformatowaniu dokumentu te
zmiany zostaną naprawione, to znaczy, że ten dokument zacznie wyglądać lepiej, a przy
okazji już widzimy, że ESlint mówi nam, że ma problem z tym, że importujemy
komponent, a wcale nie powinniśmy, więc to możemy od razu naprawić i teraz
jeśli zrobię Command S, to nic się nie wydarzy, muszę zrobić
format document albo nacisnąć Alt Command i L
w moim przypadku, ten skrót klawiszowy jest tutaj widoczny. Natomiast podobnie jak w
przypadku jest ESlinta, który sam naprawia błędy, które może naprawić
możemy też zrobić auto format dla dokumentu, czyli zaaplikowanie
automatyczne prettier'a przy zapisywaniu pliku. Wystarczy,
że wpiszemy tutaj format i znajdziemy format on save teraz jak to sobie
zaznaczymy, wrócimy do naszego pliku i teraz
nacisnę Command S to teoretycznie wszystko powinno zacząć wyglądać lepiej
i faktycznie tak się stało średnikiem wróciły na swoje miejsce, zamiast
cudzysłowów mamy apostrofy, a wiele elementów wiele
propsów, które znajdowały się na jednej linijce nagle pojawiło się w równym
rządku, także wszystko działa tak jak należy, możemy przejść do następnej
lekcji, gdzie skonfigurujemy sobie husky'ego i lint-staged'a, czyli
rzeczy, które zapobiegają commit'owanie brzydkiego kodu. Do zobaczenia w następnej
lekcji.