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 nasz pierwszy w naszej kursowej karierze Higher Order
Components, czyli funkcję która przyjmuje komponent, a następnie zwraca nam komponent
wzbogacony o pewne rzeczy. W tym przypadku wzbogaciliśmy go o nasz page
context, czyli taki props, który właśnie przekazuje nam na
jakiej stronie obecnie się znajduje, jaki to jest typ strony i na tej podstawie będzie mieć
właśnie taki Single Source of Truth, czyli takie jedyne źródło prawdy, z którego będziemy
czerpać informacje na temat tego jak mają wyglądać nasze komponenty,
co mają renderować i tak dalej. Tutaj tylko jedna taka mała zmiana. Ten
props context, może stwórzmy z niego coś bardziej takiego wprost,
żeby było wiadomo co to jest za props i ja bym tutaj go nazwał bo po prostu page context
i teraz z racji, że zmieniliśmy już tego props'a w naszym grid template,
pobieramy go sobie tutaj w tym miejscu, to musimy go wyciągnąć też jako page
context, ponieważ to jest props, który normalnie wyciągamy i teraz page contex,t
możemy podejść na przykład do naszego page type i
póki co nic się nie zepsuło. Możemy
jeszcze podmienić liczbę notatek, okej. Tutaj
wszystko na razie działa, ale jak
już się pewnie domyślasz tego typu propsów już nie musimy w naszej aplikacji podawać, User
Page Template, może tak samo korzystać z with context, czyli z
naszego higher order component'u, który sobie zaimportujemy i w
ten sposób wywalamy props'a page type, a wyciągamy page contect
i jak widzisz w sumie nawet nie jest to tutaj potrzebne. Właśnie
to jest fajne, że sporo roboty nam odejdzie po prostu wywalając
ten props z niepotrzebnych miejsc, bo póki co robiliśmy tak, że podawaliśmy do kilku
dzieci, a tak naprawdę tylko niektóre komponenty muszę z niego korzystać, więc user page
template, teoretycznie nie potrzebuję w ogóle props'a page type, ponieważ
podawał go sidebar'a, więc wywalmy sobie ten
import. Wejdźmy do sidebar'a i sidebar już akurat korzysta
z naszego page type, ponieważ ma tutaj komponent
styled wrapper, który właśnie wykorzystuje tego props'a, więc weźmy
sobie nasze with context, oplećmy w niego sidebar i page type
zastąpmy page context, czyli naszym nowym props'em jak
widzisz nasz sidebar szybko został naprawiony. Oczywiście tak
jak każdy inny props, również page context musi mieć walidacę, ale tego nie musimy
pisać. Wystarczy, że zastąpimy sobie w ten sposób
tego props'a, już będzie wszystko wiadomo. Sprawdźmy czy
gdzieś jeszcze o tym nie zapomnieliśmy, context i marked as required, grid-template
i tutaj podobnie możemy zrobić po prostu page context w ten
sposób, okej i page types
możemy usunąć, generalnie wszędzie gdzie mamy Page Type, jeśli tutaj jeszcze gdzieś mamy
page context. I skoro wiesz już jak to działa, skoro wiesz
jak używać Higher order Component'ów to teraz zostawiam ci refactoring
reszty naszej aplikacji, tak żeby wszędzie gdzie trzeba, nasze
komponenty korzystały z tego Higher Order Component, a nie korzystały z propsa Page Type, który podawaliśmy
gdzieś tam od rodziców, więc zajmiemy się tym teraz. Jeśli
nie chcesz tego robić, możesz skorzystać z kodu następnej lekcji, gdzie to wszystko będzie gotowe.