React

Book description

JavaScript cieszy się opinią wszechstronnego i elastycznego języka programowania. Przy czym bywa dość wymagający dla programisty. Rozwiązaniem dla osób, którym zależy na pisaniu niezawodnych aplikacji w krótkim czasie, okazują się frameworki. Szczególnym uznaniem cieszy się React, gdyż pozwala na pełne wykorzystanie możliwości nowoczesnych przeglądarek i urządzeń mobilnych. Jest to jednak narzędzie, które na początku przysparza problemów ze zrozumieniem sposobu działania, a bez tego trudno o otrzymanie bezbłędnie pracującej aplikacji.

Dzięki tej książce błyskawicznie uzyskasz odpowiedzi na nurtujące programistów pytania o walidację danych w formularzach, testowanie kodu czy powiązanie kodu aplikacji z kodem serwerowym. Dowiesz się również, jak zapewnić sobie możliwość wielokrotnego wykorzystywania kodu i implementacji złożonych operacji w prosty sposób. Znajdziesz tu szereg przykładowych kodów, pogrupowanych tematycznie i dobranych tak, aby ułatwić Ci rozwiązywanie problemów najczęściej pojawiających się podczas pisania aplikacji Reacta. Poszczególne próbki kodu zostały gruntownie objaśnione, dzięki czemu szybko zrozumiesz, w jaki sposób współdziałają komponenty aplikacji Reacta i jego biblioteki. A wtedy w pełni docenisz zalety tego frameworku!

W książce między innymi:

pisanie aplikacji jednostronicowych i progresywnych
integracja aplikacji z usługami serwerowymi, takimi jak REST lub GraphQL
automatyczne wykrywanie problemów z dostępnością
zabezpieczanie i testowanie aplikacji
unikanie powszechnych problemów funkcjonalnych i związanych z wydajnością

Table of contents

  1. Wstęp
    1. Konwencje stosowane w książce
    2. Stosowanie przykładowych kodów
    3. Podziękowania
  2. Rozdział 1. Tworzenie aplikacji
    1. 1.1. Generowanie prostej aplikacji
      1. Problem
      2. Rozwiązanie
      3. Analiza
    2. 1.2. Tworzenie aplikacji o bogatych treściach z zastosowaniem narzędzia Gatsby
      1. Problem
      2. Rozwiązanie
      3. Analiza
    3. 1.3. Tworzenie uniwersalnych aplikacji przy użyciu Razzle
      1. Problem
      2. Rozwiązanie
      3. Analiza
    4. 1.4. Zarządzanie kodem klienta i serwera z wykorzystaniem Next.js
      1. Problem
      2. Rozwiązanie
      3. Analiza
    5. 1.5. Tworzenie małych aplikacji przy użyciu Preacta
      1. Problem
      2. Rozwiązanie
      3. Analiza
    6. 1.6. Tworzenie bibliotek z wykorzystaniem nwb
      1. Problem
      2. Rozwiązanie
      3. Analiza
    7. 1.7. Dodawanie Reacta do aplikacji Rails za pomocą Webpackera
      1. Problem
      2. Rozwiązanie
      3. Analiza
    8. 1.8. Tworzenie niestandardowych elementów przy użyciu Preacta
      1. Problem
      2. Rozwiązanie
      3. Analiza
    9. 1.9. Tworzenie komponentów z zastosowaniem Storybooka
      1. Problem
      2. Rozwiązanie
      3. Analiza
    10. 1.10. Testowanie kodu w przeglądarce z zastosowaniem Cypressa
      1. Problem
      2. Rozwiązanie
      3. Analiza
  3. Rozdział 2. Routing
    1. 2.1. Tworzenie interfejsu z responsywnymi trasami
      1. Problem
      2. Rozwiązanie
      3. Analiza
    2. 2.2. Przenoszenie stanu do tras
      1. Problem
      2. Rozwiązanie
      3. Analiza
    3. 2.3. Użycie MemoryRouter do wykonywania testów jednostkowych
      1. Problem
      2. Rozwiązanie
      3. Analiza
    4. 2.4. Stosowanie potwierdzeń opuszczenia strony
      1. Problem
      2. Rozwiązanie
      3. Analiza
    5. 2.5. Tworzenie przejść przy użyciu biblioteki React Transition Group
      1. Problem
      2. Rozwiązanie
      3. Analiza
    6. 2.6. Tworzenie zabezpieczonych tras
      1. Problem
      2. Rozwiązanie
      3. Analiza
  4. Rozdział 3. Zarządzanie stanem
    1. 3.1. Stosowanie reduktorów do zarządzania złożonym stanem
      1. Problem
      2. Rozwiązanie
      3. Analiza
    2. 3.2. Implementacja mechanizmu cofania
      1. Problem
      2. Rozwiązanie
      3. Analiza
    3. 3.3. Tworzenie i walidacja formularzy
      1. Problem
      2. Rozwiązanie
      3. Analiza
    4. 3.4. Pomiar upływu czasu przy użyciu zegara
      1. Problem
      2. Rozwiązanie
      3. Analiza
    5. 3.5. Monitor stanu połączenia z internetem
      1. Problem
      2. Rozwiązanie
      3. Analiza
    6. 3.6. Zarządzanie globalnym stanem przy użyciu Reduxa
      1. Problem
      2. Rozwiązanie
      3. Analiza
    7. 3.7. Zachowywanie danych podczas przeładowywania stron przy użyciu Redux Persist
      1. Problem
      2. Rozwiązanie
      3. Analiza
    8. 3.8. Obliczanie stanu pochodnego przy użyciu Reselect
      1. Problem
      2. Rozwiązanie
      3. Analiza
  5. Rozdział 4. Projektowanie interakcji
    1. 4.1. Tworzenie scentralizowanej obsługi błędów
      1. Problem
      2. Rozwiązanie
      3. Analiza
    2. 4.2. Tworzenie interaktywnego przewodnika
      1. Problem
      2. Rozwiązanie
      3. Analiza
    3. 4.3. Zastosowanie reduktorów do tworzenia złożonych interakcji
      1. Problem
      2. Rozwiązanie
      3. Analiza
    4. 4.4. Dodawanie interakcji korzystających z klawiatury
      1. Problem
      2. Rozwiązanie
      3. Analiza
    5. 4.5. Stosowanie formatu Markdown do tworzenia bogatych treści
      1. Problem
      2. Rozwiązanie
      3. Analiza
    6. 4.6. Animacje tworzone z użyciem klas CSS
      1. Problem
      2. Rozwiązanie
      3. Analiza
    7. 4.7. Tworzenie animacji z użyciem React Animation
      1. Problem
      2. Rozwiązanie
      3. Analiza
    8. 4.8. Tworzenie infografik przy użyciu biblioteki TweenOne
      1. Problem
      2. Rozwiązanie
      3. Analiza
  6. Rozdział 5. Połączenia z usługami
    1. 5.1. Przekształcenie wywołania sieciowego w hook
      1. Problem
      2. Rozwiązanie
      3. Analiza
    2. 5.2. Automatyczne odświeżanie przy użyciu liczników stanu
      1. Problem
      2. Rozwiązanie
      3. Analiza
    3. 5.3. Anulowanie żądań sieciowych z wykorzystaniem tokenów
      1. Problem
      2. Rozwiązanie
      3. Analiza
    4. 5.4. Generowanie żądań sieciowych z użyciem oprogramowania pośredniego Reduxa
      1. Problem
      2. Rozwiązanie
      3. Analiza
    5. 5.5. Nawiązywanie połączenia z GraphQL
      1. Problem
      2. Rozwiązanie
      3. Analiza
    6. 5.6. Ograniczanie obciążenia sieci poprzez opóźnianie generowania żądań
      1. Problem
      2. Rozwiązanie
      3. Analiza
  7. Rozdział 6. Biblioteki komponentów
    1. 6.1. Stosowanie Material Design przy użyciu biblioteki Material-UI
      1. Problem
      2. Rozwiązanie
      3. Analiza
    2. 6.2. Tworzenie prostego interfejsu użytkownika za pomocą React Bootstrap
      1. Problem
      2. Rozwiązanie
      3. Analiza
    3. 6.3. Przeglądanie zbiorów danych przy użyciu React Window
      1. Problem
      2. Rozwiązanie
      3. Analiza
    4. 6.4. Tworzenie responsywnych okien dialogowych z wykorzystaniem Material-UI
      1. Problem
      2. Rozwiązanie
      3. Analiza
    5. 6.5. Tworzenie konsoli administracyjnej przy użyciu React Admin
      1. Problem
      2. Rozwiązanie
      3. Analiza
    6. 6.6. Nie masz projektanta? Użyj Semantic UI
      1. Problem
      2. Rozwiązanie
      3. Analiza
  8. Rozdział 7. Bezpieczeństwo
    1. 7.1. Zabezpieczaj żądania, nie trasy
      1. Problem
      2. Rozwiązanie
      3. Dyskusja
    2. 7.2. Uwierzytelnianie z użyciem fizycznych tokenów
      1. Problem
      2. Rozwiązanie
      3. Analiza
    3. 7.3. Włączanie protokołu HTTPS
      1. Problem
      2. Rozwiązanie
      3. Analiza
    4. 7.4. Uwierzytelnianie za pomocą odcisków palców
      1. Problem
      2. Rozwiązanie
      3. Analiza
    5. 7.5. Stosowanie logowania potwierdzającego
      1. Problem
      2. Rozwiązanie
      3. Analiza
    6. 7.6. Stosowanie uwierzytelniania jednoskładnikowego
      1. Problem
      2. Rozwiązanie
      3. Analiza
    7. 7.7. Testowanie na urządzeniu z Androidem
      1. Problem
      2. Rozwiązanie
      3. Analiza
    8. 7.8. Sprawdzanie bezpieczeństwa/zabezpieczeń przy wykorzystaniu ESlint
      1. Problem
      2. Rozwiązanie
      3. Analiza
    9. 7.9. Dostosowywanie formularzy logowania pod kątem przeglądarek
      1. Problem
      2. Rozwiązanie
      3. Analiza
  9. Rozdział 8. Testowanie
    1. 8.1. Stosowanie React Testing Library
      1. Problem
      2. Rozwiązanie
      3. Analiza
    2. 8.2. Stosowanie Storybooka do testów renderowania
      1. Problem
      2. Rozwiązanie
      3. Analiza
    3. 8.3. Testowanie bez serwera z użyciem Cypressa
      1. Problem
      2. Rozwiązanie
      3. Analiza
    4. 8.4. Stosowanie Cypressa do testowania aplikacji bez połączenia z internetem
      1. Problem
      2. Rozwiązanie
      3. Analiza
    5. 8.5. Testowanie w przeglądarce przy użyciu Selenium
      1. Problem
      2. Rozwiązanie
      3. Analiza
    6. 8.6. Testowanie prezentacji w różnych przeglądarkach z użyciem ImageMagick
      1. Problem
      2. Rozwiązanie
      3. Analiza
    7. 8.7. Dodawanie konsoli do przeglądarek mobilnych
      1. Problem
      2. Rozwiązanie
      3. Analiza
    8. 8.8. Usuwanie losowości z testów
      1. Problem
      2. Rozwiązanie
      3. Analiza
    9. 8.9. Podróż w czasie
      1. Problem
      2. Rozwiązanie
      3. Analiza
  10. Rozdział 9. Dostępność
    1. 9.1. Stosowanie punktów orientacyjnych
      1. Problem
      2. Rozwiązanie
      3. Analiza
    2. 9.2. Stosowanie ról oraz atrybutów alt i title
      1. Problem
      2. Rozwiązanie
      3. Analiza
    3. 9.3. Sprawdzanie dostępności za pomocą narzędzia ESlint
      1. Problem
      2. Rozwiązanie
      3. Analiza
    4. 9.4. Stosowanie axe DevTools podczas działania aplikacji
      1. Problem
      2. Rozwiązanie
      3. Analiza
    5. 9.5. Automatyzowanie testów w przeglądarce za pomocą narzędzia Cypress Axe
      1. Problem
      2. Rozwiązanie
      3. Analiza
    6. 9.6. Dodawanie przycisków pomijania
      1. Problem
      2. Rozwiązanie
      3. Analiza
    7. 9.7. Dodawanie pomijania obszarów strony
      1. Problem
      2. Rozwiązanie
      3. Analiza
    8. 9.8. Przechwytywanie zasięgu w modalnym oknie dialogowym
      1. Problem
      2. Rozwiązanie
      3. Analiza
    9. 9.9. Tworzenie czytnika ekranu za pomocą Speech API
      1. Problem
      2. Rozwiązanie
      3. Analiza
  11. Rozdział 10. Wydajność
    1. 10.1. Stosowanie narzędzi mierzenia wydajności działających w przeglądarce
      1. Problem
      2. Rozwiązanie
      3. Analiza
    2. 10.2. Śledzenie renderowania za pomocą Profilera
      1. Problem
      2. Rozwiązanie
      3. Analiza
    3. 10.3. Tworzenie testów jednostkowych z użyciem komponentu Profiler
      1. Problem
      2. Rozwiązanie
      3. Analiza
    4. 10.4. Precyzyjny pomiar czasu
      1. Problem
      2. Rozwiązanie
      3. Analiza
    5. 10.5. Zmniejszanie aplikacji z wykorzystaniem dzielenia kodu
      1. Problem
      2. Rozwiązanie
      3. Analiza
    6. 10.6. Łączenie obietnic żądań sieciowych
      1. Problem
      2. Rozwiązanie
      3. Analiza
    7. 10.7. Stosowanie renderowania po stronie serwera
      1. Problem
      2. Rozwiązanie
      3. Analiza
    8. 10.8. Stosowanie metryk web vitals
      1. Problem
      2. Rozwiązanie
      3. Analiza
  12. Rozdział 11. Progresywne aplikacje internetowe
    1. 11.1. Stosowanie mechanizmu service workers przy użyciu narzędzia Workbox
      1. Problem
      2. Rozwiązanie
      3. Analiza
    2. 11.2. Tworzenie PWS za pomocą narzędzia create-react-app
      1. Problem
      2. Rozwiązanie
      3. Analiza
    3. 11.3. Przechowywanie zasobów zewnętrznych w pamięci podręcznej
      1. Problem
      2. Rozwiązanie
      3. Analiza
    4. 11.4. Automatyzacja odświeżania skryptów service worker
      1. Problem
      2. Rozwiązanie
      3. Analiza
    5. 11.5. Dodawanie powiadomień
      1. Problem
      2. Rozwiązanie
      3. Analiza
    6. 11.6. Wprowadzanie zmian offline z zastosowaniem synchronizacji w tle
      1. Problem
      2. Rozwiązanie
      3. Analiza
    7. 11.7. Dodawanie niestandardowego instalacyjnego interfejsu użytkownika
      1. Problem
      2. Rozwiązanie
      3. Analiza
    8. 11.8. Dostarczanie odpowiedzi w trybie offline
      1. Problem
      2. Rozwiązanie
      3. Analiza
      4. O autorach
      5. Kolofon

Product information

  • Title: React
  • Author(s): David Griffiths
  • Release date: June 2022
  • Publisher(s): Helion
  • ISBN: 9788328387645