Podstawy
1 godz. 31 min · Typescript · Full-stack i Programowanie
Adam GospodarczykTypeScript umożliwia opisanie naszego kodu typami oraz wychwytywanie dotyczących ich błędów na wczesnym etapie developmentu. W efekcie wykorzystanie TypeScript'u w projekcie podnosi jego jakość i zmniejsza ryzyko pomyłek, które mogą być nie wychwycone na etapie testowania lub mogą pojawić się dopiero w środowisku produkcyjnym.
Z pomocą Reacta tworzymy coraz bardziej złożone aplikacje w których ryzyko popełnienia błędów jest wysokie. TypeScript nie tylko je zmniejsza ale również wpływa pozytywnie na tzw. developer experience (doświadczenia programisty) poprzez to, że nasze IDE "wie więcej" na temat kodu który piszemy. A to z kolei przekłada się na lepszą wydajność i komfort pracy.
Przy założeniu że znamy już samego Reacta oraz TypeScript, połączenie tych dwóch umiejętności jest stosunkowo proste. Wystarczy poznać ogólne zasady typowania propsów, komponentów oraz hooków aby z powodzeniem móc wykorzystywać zalety płynące z posiadania typów w naszym kodzie. W tym kursie dowiesz się jak to zrobić, w najszybszy możliwy sposób.
Kurs został przygotowany tak aby na prostych przykładach pokazać Ci w jaki sposób wykorzystywać TypeScript w projektach React.js. Jeżeli szukasz źródła które pozwoli Ci szybko zacząć - jesteś w dobrym miejscu.
Materiał zawiera dobre praktyki i sugestie dotyczące wykorzystania TypeScript'u oraz konfiguracji środowiska pracy (np. IDE) oraz ustawień samego projektu. Jest to wiedza którą możesz wykorzystać również w przypadku pracy z innymi technologiami.
Kurs został przygotowany z myślą o osobach, które znają już React oraz TypeScript i chcą dowiedzieć się w jaki sposób połączyć te umiejętności. Materiał niemal całkowicie pomija informacje na temat mechanizmów Reacta oraz TypeScript'u. Jeżeli potrzebujesz poszerzyć swoją wiedzę na ich temat, zapraszamy Cię do naszych pozostałych kursów.
Tą lekcją dochodzimy już do końca
typowania psów i zostały nam do omówienia owce.
Zobaczmy więc jak wygląda typowanie
psów i w tym celu utworzymy sobie następującą strukturę.
Całość oprzemy tutaj o wykorzystanie dwóch komponentów.
Będzie to komponent Mysz wędrujący nam
Kopa, a konkretnie obrazek z kotem podążający za wskaźnikiem naszej myszy.
Na ten moment wygląda to tak, że
rzeczywiście wykorzystujemy tutaj render props, ponieważ przekazujemy funkcję.
No to teraz musimy w pierwszej kolejności zadbać o to, aby utworzyć te komponenty.
Zatem w pierwszej kolejności utworzymy
sobie kota, czyli nasz komponent funkcyjny.
Ten na razie nie będzie nam nic zwracał.
Następnie utworzymy sobie mysz, która w
tym przypadku będzie komponentem klasowym i zrobię to ze względu na to, że będziemy
wykorzystywać tutaj stan i jednocześnie nie chcę już sięgać po huki.
Mam nadzieję, że to rozumiesz.
A ja w międzyczasie dodam tu jeszcze konstruktor i metoda render.
No to teraz musimy zająć się tym, aby
dodać tutaj odpowiednie type i w tym celu jak zwykle wykorzystamy interfejsy.
Pierwszym z nich będzie interfejs @ Space
zawierający właściwości X oraz Y, czyli pozycję naszej myszy.
A drugim interfejsem będą Propsy dla naszego kota.
I jeszcze tutaj zmienię tylko nazwę poprzedzając ją wielką literą I.
I zwróćcie uwagę, że wykorzystaliśmy tutaj typ @ State pochodzi również z jak ta.
I tutaj oczywiście musimy zmienić jeszcze nazwę w tym miejscu.
No to teraz mamy nasze interfejsy, więc
wystarczy, że przypiszemy je do naszych komponentów.
Jeżeli chodzi o komponenty klasowe i ich
stan oraz propsy, to będziemy sobie jeszcze o tym mówić, ale
przekazujemy je w tym miejscu w następującej kolejności.
Na początek znajdują się tutaj propsy apa tutaj Typy stanu.
W naszym przypadku stanem będzie utworzony wcześniej interfejs.
A jeżeli chodzi o propsy naszej myszy, to musimy je tutaj utworzyć.
Jeżeli się nad tym zastanowimy to wiemy, że mysz będzie posiadać propsy render,
która będzie przyjmować jako parametr aktualny stan naszej myszy, a jako
zwracana wartość będziemy mieć tutaj element g sex.
Z tego powodu i nasz interfejs będzie wyglądał w następujący sposób.
Mamy tutaj właściwość render, do której przekazujemy nasz stan posiadający
oczywiście odpowiedni typ, no i zwracający element g sex.
Zatem wygląda na to, że propsy naszej myszy są już tutaj gotowe i aby upewnić
się, że wszystko jest tutaj w porządku, musimy je przekazać również w tym miejscu.
O tym, dlaczego tak się dzieje, będziemy sobie jeszcze mówić, a tymczasem
uzupełnimy sobie zwracane przez te komponenty wartości.
Konkretnie jeżeli chodzi o naszego kota,
to będziemy zwracać tutaj obrazek zawierający obrazek kota oraz na bieżąco
będziemy aktualizować jego pozycję względem okna przeglądarki.
Z kolei jeżeli chodzi o samą mysz, będzie tutaj nieco bardziej skomplikowanie,
ponieważ będziemy musieli obsłużyć samą pozycję myszy.
W związku z tym tworzymy sobie tutaj
elementy posiadające rozmiar pełnego okna przeglądarki, a następnie będziemy
nasłuchiwać zdarzenia przesuwania myszy i odpowiednio reagować metodą smooth.
Za chwilę ją sobie utworzymy, a tymczasem musimy zająć się również tym, aby
wyrenderować przekazanego klapsa i przekazać do niego aktualny stan.
Zatem sytuacja wygląda teraz tak, że wystarczy, że utworzymy teraz tą metodę.
Do tej metody zostaje przekazany event, a
jeżeli chodzi o jego typ to oczywiście będzie to Math Event.
Przy czym nie chodzi nam konkretnie o
Massive, tylko Max Event pochodzący z bezpośrednio zwierzaka.
W tym momencie zniknęły nam tutaj błędy i wszystko jest w porządku.
A jeżeli chodzi o typowanie eventów, to będziemy sobie o tym jeszcze mówić.
W związku z tym nie zatrzymuję się tutaj zbyt długo.
No to teraz wewnątrz tej metody musimy zadbać o zaktualizowanie stanu naszego
komponentu, który w tym miejscu będzie przekazany do naszego kota.
W praktyce po prostu sięgamy po metodę set
state i przekazujemy nowy stan naszego obiektu.
No to teraz wygląda na to, że wszystkie
nasze typy zostały tutaj odpowiednio dodane.
No to teraz już ostatnim krokiem, aby to
wszystko nam działało będzie ustawienie domyślnego stanu naszego komponentu.
I tutaj oczywiście musimy zamienić naszą metodę Smooth na funkcję strzałki.
W ten sposób nie utracimy tutaj dostępu do dysku i będziemy mogli ustawić stan.
No to teraz jeżeli przejdziemy do przeglądarki, to okaże się, że
rzeczywiście mamy tutaj losowego kota podążającego za naszą myszą.
Zatem jak widzisz w przypadku render procesów typowanie jest dość złożone, ale
jednocześnie nie jest to nic, czego nie bylibyśmy w stanie obsłużyć.
Oczywiście dodałem tutaj elementy
dotyczące obsługi komponentów klasowych i typowania w ich przypadku stanu.
Natomiast tak jak powiedziałem, jeżeli coś tutaj nie jest jasne, to nie przejmuj się
tym, proszę, ponieważ będziemy o tym mówić w jednej z kolejnych lekcji.
W każdym razie najważniejsze jest tutaj
to, abyś rozumiał to, w jaki sposób możemy typować poszczególne elementy naszych
komponentów do tego, aby odwzorować wszystko to, co robimy w tej akcji.
Jeżeli chodzi o temat render to psów i tym
samym w ogóle psów uważam go za zakończone, aczkolwiek oczywiście jeszcze
na przestrzeni kolejnych lekcji będziemy do niego wracać.
Tymczasem dzięki za uwagę i zapraszam Cię do kolejnych lekcji tego kursu.