GraphQL w React #1 – poznaj podstawy GraphQL!

Spis treści

  1. Wprowadzenie
  2. Podstawy GraphQL
    1. Schema
      1. Scalar types
      2. Object types
      3. Input types
      4. Root types
    2. Resolvers
  3. Uruchomienie serwera GraphQL
    1. Instalacja i implementacja
      1. Instalacja serwera Apollo
      2. Uruchomienie serwera Apollo
    2. Pełny kod aplikacji
    3. Kod w repozytorium Github
    4. Queries – wysyłanie żądań na serwer
      1. Kod w repozytorium Github
  4. Podsumowanie

Wprowadzenie

Popularność GraphQL rośnie z dnia na dzień – warto więc być zorientowanym w temacie, zważywszy że jego stosowanie ma wiele zalet:

  • jasno zdefiniowane API dzięki schematom
  • pobieranie tylko potrzebnych danych – brak zjawiska nadmiarowych danych
  • Brak konieczności poprawek backendowych, jeżeli zmienią się potrzebne w danym widoku dane (w rozsądnych ramach oczywiście)
  • duża popularność, GraphQL jest stosowany między innymi przez takie firmy Github, Starbucks czy Twitter.

Warto więc poznać podstawy GraphQL.

Czytaj dalej GraphQL w React #1 – poznaj podstawy GraphQL!

Poznaj bibliotekę Yup, która pomoże Ci z walidacją formularzy

Spis treści

  1. Wprowadzenie
  2. Zastosowanie biblioteki
    1. Prosta walidacja true / false
    2. Walidacja ze zwrotką zawierającą błędy
    3. Własne teksty dla błędów walidacji
  3. Zastosowanie Yup w React
    1. Czysty React bez bibliotek
      1. Pełny kod
      2. Kod na github
    2. Wsparcie w bibliotekach do obsługi formularzy w React
  4. Podsumowanie

Wprowadzenie

Choć od dawna HTML5 udostępnia nam możliwość walidowania formularzy za pomocą atrybutów na polach takich jak required, min, max, minlength czy maxlength, to rozwiązanie rzadko kiedy jest wystarczające. Nie mamy chociażby możliwości stylowania popupu informującego o błędzie walidacji, nie możemy zmienić też tekstu błędu. Dodatkowo, wygląda on różnie w różnych przeglądarkach.

Co prawda, CSS dostarcza pseudoklasy związane z walidacją, opisane np tutaj: Styling Form Inputs in CSS With :required, :optional, :valid and invalid i na ich podstawie, budując skomplikowane selektory możnaby kolorować pola, wyświetlać użytkownikowi błędy itd jednak nadal potrzebujemy walidacji w JS choćby wtedy, gdy chcemy sprawdzić coś niestandardowego jak UUID.

Biblioteka Yup służy do budowania schematów walidacji obiektów oraz parsowania jednych obiektów na drugie. Choć naturalnym miejscem jej użycia są walidacje formularzy, nie jest do tego ograniczona – walidować i parsować można np dane z API backendowego, ponieważ Yup waliduje bezpośrednio obiekt z danymi, nie ma powiązania z np DOMem.

Czytaj dalej Poznaj bibliotekę Yup, która pomoże Ci z walidacją formularzy

Biblioteki do formularzy w React #4 – Final Form

Ten post jest ostatnim artykułem w serii o obsłudze formularzy w React:


Spis Treści

  1. Wprowadzenie
  2. Przykład prosty
    1. Walidacja
      1. Walidacja prosta
      2. Walidacja asynchroniczna
    2. Pełny kod przykładu prostego
    3. Repozytorium przykładu prostego na Github
  3. Przykład zaawansowany
    1. Problemy wersji 6.4.0 z walidacją asynchroniczną
    2. CSS GRID
    3. Dodawanie zdjęć do galerii za pomocą customowego komponentu
    4. Walidacja rozmiarów obrazka
    5. Pełny kod przykładu zaawansowanego
    6. Repozytorium przykładu zaawansowanego na Github
  4. Podsumowanie

Wprowadzenie

Biblioteka Final Form jest biblioteką bazującą na modelu subskrypcyjnym, pozwalającą subskrybować zmiany wartości, walidacji czy aktywności danego pola. Biblioteka nie jest związana z żadnych konkretnym frameworkiem, natomiast posiada wrapper dla Reacta – React Final Form i to on omówiony zostanie w tym artykule.

Dlaczego powinno zależeć Ci na poznaniu biblioteki Final Form? Ponieważ znacząco ułatwia takie rzeczy jak:

  • przekazywanie danych z i do formularza
  • skomplikowane, customowe walidacje
  • walidacja asynchroniczna
  • zarządzanie stanem formularza (by np pokazywać użytkownikowi których pól jeszcze nie „dotknął”)
  • podpinanie customowych komponentów do zautomatyzowanej logiki biblioteki
Czytaj dalej Biblioteki do formularzy w React #4 – Final Form

Biblioteki do formularzy w React #3 – formik

Ten post jest trzecią częścią serii o obsłudze formularzy w React:

Spis Treści

  1. Wprowadzenie
  2. Prosty przykład
    1. Baza do dalszych prac
      1. Wersja klasyczna
      2. Wersja z hookami
    2. Walidacja
      1. Prosta walidacja
      2. Asynchroniczna walidacja
      3. Walidacja z pomocą biblioteki Yup i tworzenie schematów
      4. Pełny kod walidacji
    3. Customowe komponenty z hookiem useField
  3. Przykład zaawansowany
    1. Brak obsługi plików w Formik
    2. Komponent FieldsArray
    3. Wyświetlanie za pomocą CSS GRID
    4. Pełny kod
  4. Podsumowanie

Wprowadzenie

Formik to jedna z najbardziej uznanych bibliotek do zarządzania formularzami w React. Jej autor, Jared Palmer, jest autorem wielu projektów których my jako programiści używamy na codzień.

Formik upraszcza codzienną pracę z formularzami, ułatwiając zarządzanie wartościami w formularzu, walidacją i jego stanem wewnętrznym. Dzięki bibliotece możesz w prosty sposób:

  • podpiąć customowe walidacje które podepniemy tak prosto jak walidacje natywne,
  • podpiąć walidacje asynchroniczne
  • sygnalizować użytkownikowi, które pola zostały już przez niego wypełnione
  • obsługiwać tablice i obiekty jako pola formularza

Oraz wiele innych, jednocześnie używając prostego i czytelnego API.
Formik wspiera integrację z TypeScript. Obsługuje również React Native, dzięki czemu raz zdobyta wiedza może być użyta w aplikacji internetowej i aplikacji natywnej.
Wiedza jaką zdobędziesz czytając ten wpis pozwoli Ci używać biblioteki Formik w codziennej pracy, oszczędzając Ci wielu nieprzyjemności ręcznej obsługi formularzy.
Zahaczymy również o CSS GRID – jeśli chcesz dowiedzieć się o nim czegoś więcej, możesz obejrzeć prezentację jaką miałem podczas webinaru dla lokalnej grupy Tarnów Devs:

W opisie filmu znajdziesz link do slajdów na Google Drive oraz link do repo na Githubie do playgroundu którego w prezentacji używałem.

Czytaj dalej Biblioteki do formularzy w React #3 – formik

Biblioteki do formularzy w React #2 – react-hook-form

Ten post jest kontynuacją serii o obsłudze formularzy w React:

Spis Treści

  1. Wprowadzenie
  2. Prosty przykład
    1. Baza do dalszych prac
    2. Walidacja
      1. Prosta walidacja
      2. Customowa walidacja
      3. Asynchroniczna walidacja
      4. Wiadomości dla błędów walidacji
    3. Obsługa stanu formularza – obiekt formState
      1. Informowanie o tym, że trwa wysyłanie formularza
      2. Oznaczanie pól, które zmodyfikował użytkownik
    4. Pełny kod prostego przykładu
  3. Zaawansowany przykład
    1. Obsługa tablic i obiektów jako pól formularza
    2. Walidacja rozmiarów obrazka
    3. Pełny kod pierwszej wersji
    4. Ostateczna wersja
    5. Pełny kod wersji ostatecznej
  4. DevTools dla React Hook form
    1. Podpięcie DevTools
    2. Wyświetlanie DevTools tylko podczas developmentu
  5. Podsumowanie

Wprowadzenie

Jeżeli szukasz biblioteki, która pozwoli Ci zachować formularze proste i czytelne, nie powodując dużego narzutu na kod i nie narzucając zbyt wielu własnych rozwiązań – a jednocześnie dającej duże możliwości zarządzania stanem formularza, walidacją itd to react-hook-form jest rozwiązaniem stworzonym dla Ciebie.

Czytelne i proste API oparte na hookach, dedykowane narzędzie do debugowania powodują, że react-hook-form jest rozwiązaniem pierwszego wyboru do zarządzania formularzami.

Czytaj dalej Biblioteki do formularzy w React #2 – react-hook-form

Biblioteki do formularzy w React #1 – sprawdź wprowadzenie do 3 najpopularniejszych bibliotek

Spis treści

  1. Wprowadzenie
  2. react-hook-form
    1. Przykład prosty
    2. Przykład zaawansowany
  3. formik
    1. Przykład prosty
    2. Przykład zaawansowany
    3. Walidacja za pomocą Yup
  4. react-final-form
    1. Przykład prosty
    2. Przykład zaawansowany
  5. Podsumowanie

Wprowadzenie

Zarządzanie formularzami nie jest proste – należy pilnować walidacji danych, pokazywać użytkownikowi błędy, ukrywać te błędy w odpowiednim momencie. React jako biblioteka nie dostarcza zaawansowanych sposobów obsługi formularzy – możesz uznać to jako zaletę, ponieważ łatwiej dostosować rozwiązanie pod Twój konkretny przypadek. Z drugiej strony musisz jednak napisać sporo kodu – tutaj z pomocą biblioteki, które pozwolą również obsłużyć edge-case’y.

Ręczna obsługa formularzy potrafi napsuć krwi i zająć sporo czasu – biblioteki które zostaną opisane zdejmują z programisty ogrom odpowiedzialności związanej z obsługą walidacji, edge-case’ów, dzięki nim nie trzeba ręcznie przetrzymywać stanu formularza. Upraszczają zaawansowane przypadki takie jak bardzo customowe kontrolki, które nawet nie muszą być elementami formularza by móc je pod formularz podpiąć.

Stąd zdecydowanie warto zaznajomić się z podstawami korzystania z tych bibliotek – ten wpis jako pierwszy z serii pokrótce każdą z nich przedstawi, a kolejne wpisy z serii będą dedykowane już konkretnym bibliotekom – by pokazać pełnię ich zaawansowanych możliwości.

W tym wpisie zobaczysz więc wprowadzenie do najpopularniejszych bibliotek do obsługi formularzy w React.

Czytaj dalej Biblioteki do formularzy w React #1 – sprawdź wprowadzenie do 3 najpopularniejszych bibliotek