Czym jest React? To darmowa biblioteka JS open-source, którą stworzył programista Facebooka (obecnie Meta), Jordan Walke w 2013 roku. Nie jest pełnowymiarową biblioteką, wykorzystuje się go najczęściej do tworzenia prostych interfejsów graficznych w języku programowania JavaScript. Dobra znajomość Reacta pozwala zoptymalizować tworzenie interaktywnych UI.
O0becnie z Reacta korzystają takie korporacje jak: Netflix, Imgur czy PayPal.
Dlaczego w 2022 r. warto podstawić na naukę Reacta? Właśnie ze względu na wzrost znaczenia UX/UI w projektowaniu sklepów e-commerce. Obecne trendy stawiają na prosty, minimalistyczny i przejrzysty interfejs, a do tego zdecydowanie przyda się React.
Czym wyróżnia się React?
Włącz telewizor lub laptopa i kliknij aplikację Netflix. Przyjrzyj się uważnie, w jaki sposób zbudowany jest jego interfejs graficzny. Po lewej stronie znajduje się menu z odnośnikami do wyboru poszczególnych kategorii, na środku ekranu znajdują się wizualizacje plakatów filmowych i serialowych z tytułami, również podzielone na odpowiednie sekcje np. komedie, dramaty, seriale animowane etc. W całej stylistyce Netflixa dominują dwa kolory — czerwień i czerń.
Kiedy przystąpisz do nawigacji, również zauważysz, że nie ma w niej nic skomplikowanego. Z łatwością manewruje się pomiędzy poszczególnymi kategoriami a menu głównym. Wyraźne, białe napisy na ciemnym tle odznaczają się od reszty, dzięki czemu nawet osoby z dysfunkcją wzroku poradzą sobie z nawigacją pomiędzy menu głównym a kategoriami pobocznymi. Cały interfejs jest czytelny, przejrzysty i intuicyjny. Taki właśnie jest też React.
To, co go wyróżnia to wirtualna biblioteka DOM (Document Object Model), który przechowuje w aplikacji pamięci i wraz z każdą naniesioną przez programistę aktualizacją kodu, automatycznie renderuje jedynie te elementy, które rzeczywiście się zmieniły. Ta funkcja znacznie przyspiesza projektowanie stron, bez konieczności ponownego przeliczania CSS i całego układu strony.
Ponieważ Jordan Walke inspirował się XHP, stworzył analogiczne rozszerzenie składni językowej Java Script — JSX. Ta nakładka umożliwia swobodne wstawianie elementów HTML i XML bezpośrednio w kodzie strony. Znajomość składni JSX nie jest wymagana, by skutecznie programować w React.
ReactJS jest językiem deklaratywnym, czyli takim, w którym to programista definiuje warunki, jakie musi spełniać końcowy wynik, zamiast definiowania poszczególnych składowych, dzięki którym te warunki zostaną spełnione.
Aby nazwać język programowania deklaratywnym, musi spełnić trzy wymogi:
- musi być niezależny (końcowy wynik nie jest zależny od żadnych czynników);
- musi być bezstanowy (nie istnieje żaden stan zewnętrzny pomiędzy poszczególnymi wywołaniami);
- musi być deterministyczny (dawać zawsze ten sam wynik dla takich samych argumentów wejściowych).
Deklaratywność języka programowania sprawia, że kod staje się łatwiejszy do nauki oraz do codziennego wykorzystywania, m.in. szybszego debugowania. React jest jednym z trzech najpopularniejszych opcji, które wykorzystują w swojej pracy Front-End Developerzy. Jest jednak (obok Angulara i Vue) najprostszą biblioteką, która w zaawansowanych projektach będzie wymagała sparowania z innymi bibliotekami oraz dostosowania zmian również po stronie klienta.
Chcesz programować w React? Tego unikaj
Jeżeli chcesz nauczyć się Reacta, przygotuj się na to, że spotkają Cię liczne pułapki, w które dasz się złapać, jak to początkujący programista. Na szczęście nie musisz powtarzać dokładnie wszystkich błędów osób, które dopiero poznają ten język programowania. Czego powinieneś unikać w trakcie nauki Reacta, by ułatwić sobie pracę i nie zniechęcić się do dalszej nauki?
Redux nie rozwiąże każdego problemu
Na pewnym etapie nauki Reacta, zetkniesz się z Reduxem i gwarantujemy, że go pokochasz. Redux jest niewielką biblioteką Java Script typu open source, która służy do zarządzania i centralizacji stanu aplikacji. Ma proste i ograniczone API. Jej główna funkcja to przewidywalny kontener dla stanu aplikacji. Działa podobnie do funkcji redukującej, koncepcji programowania funkcjonalnego.
Jeżeli zaczniesz używać samego Reduxa, Twój kod stanie się chaotyczny i nie będzie wiadomo, czy jest globalny, czy lokalny. Ponadto nadmierne używanie Reduxa znacznie obniża wydajność kodu i wymusza więcej renderowań. Zanim kolejny raz pomyślisz o użyciu Reduxa upewnij się, że pracujesz jedynie na globalnych danych.
Brak wykorzystywania koncepcji stanu pochodnego
Koncepcją stanu pochodnego jest przechowywanie jak najmniejszej ilości danych w stanie. Obliczanie zmiennych zamiast przechowywania ich w stanie ułatwia synchronizację danych w przypadku wprowadzenia jakichkolwiek zmian. Początkujący programiści często jednak przechowują zbyt wiele danych w stanie, skutkiem czego ich późniejsza synchronizacja jest utrudniona.
Nadmierne używanie operatora spread w przekazywaniu propsów do komponentów
To pułapka, w którą łatwo złapie się osoba, która dopiero poznaje Reacta. Chociaż może się wydawać, że kod z {...props} jest bardziej uporządkowany i czytelny, to jednak gdy przekazujesz wszystkie propsy kontenerowi-dziecku za pomocą operatora spread, tworzy się chaos. W efekcie refaktoryzacja może być utrudniona lub nawet niemożliwa, a Tobie będzie dużo trudniej wyłapać bugi w kodzie. W jakim przypadku można bezpiecznie stosowac operator spread? W trakcie projektowania containera lub HOC, który ulepsza swoje komponenty-dzieci oraz je renderuje.
Projektowanie ogromnych drzew komponentów
Ogromne drzewa komponentów nie wyglądają ani estetycznie, ani nie są funkcjonalne, a dodatkowo trudniej jest wyłapać w nich rzeczy do poprawy. Zwykle niepotrzebne nagromadzenie komponentów powstaje w momencie, w którym nie oddzielisz logicznych części kodu od prezentacyjnych. Praca nad projektowaniem kodu uczy uporządkowywania danych, sprawdzania się po każdym kolejnym etapie, by wyłapać i poprawić ewentualne bugi albo przepisać jakiś fragment.
Nadgorliwa optymalizacja własnego kodu
Dobrze jest wyrobić sobie nawyk sprawdzania swojej pracy (w tym przypadku kodu), ale nadgorliwa optymalizacja własnego kodu (zwłaszcza w przypadku braku podstaw tj. błędów) też nie jest dobrym rozwiązaniem. Przekombinowany kod staje się zbyt skomplikowany, a proste rozwiązania nagle zaczynają być chaotyczne. Próbując rozwikłać ten zawikłany kod, nie tylko się niepotrzebnie sfrustrujesz, ale też po prostu zmarnujesz swój czas. Odpowiednie rozdzielenie komponentów prezentacyjnych i logicznych znacznie zaoszczędza czas na optymalizację kodu.
Czy React jest wymagany na stanowisku Frontend Developera?
Tak! Zdecydowanie znajomość Reacta ułatwia pracę na stanowisku Frontend Developera, a nawet jest wymagana. Co więcej, biblioteki Reacta są najczęściej wybierane do rozpoczynania projektów, także warto mieć, chociaż podstawową wiedzę o React, zwłaszcza jeśli celujesz w stanowisko Front-End Developera. Jakie są obecne zarobki na stanowisku React Developera? Średnie zarobki programisty React wynoszą obecnie od 12 do 17.000 zł brutto. NA stanowisku juniora zarobisz średnio ok. 8000 zł brutto.
Wymagania na stanowisko React Developer
Sprawdź, co musisz umieć, aby ubiegać się o pracę na stanowisku React Developera. Do najważniejszych wymagań należą:
- znajomość mechaniczmów Hooks i Redux;
- podstawowa znajomość MySQL;
- komercyjne doświadczenie z programowaniem w React.js oraz React Native;
- bardzo dobra znajomość HTML/CSS, SASS’a i założeń RWD;
- Znajomość JavaScript;
- kreatywność, umiejętność pracy w zespole.
Jak widzisz, znajomość Reacta nie tylko otwiera drzwi do łatwiejszej kariery na stanowisku Front-End Developera, ale może być świetną okazją do wejścia w świat IT w przyjemny i prosty sposób. React jest często wybierany do nauki przez osoby, które nie miały wcześniej styczności z programowaniem, właśnie ze względu na swoją intuicyjność i prostą składnię. Jeżeli czujesz się na siłach, drzwi do branży IT stoją przed Tobą otworem! Nawet jeśli okaże się, że praca na stanowisku React Developera nie była Twoją wymarzoną, dobra znajomość Reacta pozwoli Ci na sukcesywną zmianę stanowiska pracy w przyszłości.