szczecinski.eu

szczecinski.eu

  • Kurs React
  • Zaawansowany React
  • Kurs Redux
  • Kurs ES6
  • Blog
  • Kontakt

›Hooks

Wprowadzenie

  • Tematy zaawansowane

Strukturowanie komponentów

  • Komponenty złożone
  • HoC - Komponenty wyższego rzędu
  • Render Props

Context

  • Wprowadzenie
  • Przykład zastosowania: system translacji
  • Zaawansowane opcje

Hooks

  • Wprowadzenie
  • useState
  • useReducer
  • useEffect
  • useContext
  • Pozostałe hooki
  • Własne hooki

Pozostałe API

  • React.memo
  • React.lazy

Wprowadzenie

React Hooks to nowy mechanizm pozwalający na wdrożenie w komponentach opartych o funkcje niektórych z funkcjonalności, które do tej pory wymagały utworzenia komponentów klasowych, tj. stan komponentu czy wywoływanie operacji w odpowiednich cyklach życia komponentu.

Hooki dostępne są jako seria funkcji w obiekcie React. Ich nazwa zawsze zaczyna się od słowa use: useState, useEffect czy useReducer.

Dostępne są one wyłącznie w komponentach opartych o funkcje i nie ma możliwości wykorzystania ich zarówno w komponentach klasowych i jak i poza komponentami (z wyjątkiem osadzania wewnątrz własnych Hooków).

Uwaga

Hooki dostępne będą w React dopiero od wersji 16.8.0. Jeżeli chcesz skorzystać z nich przed oficjalną premierą musisz do swojego projektu dodać alphy pakietu react i react-dom: npm install react@next react-dom@next

Motywacja

Motywacją do wprowadzenia tego mechanizmu były:

  • zachęcenie do tworzenia mniej złożonych komponentów - trzymanie dużej ilości danych w stanie komponentu nie tylko komplikuje jego mechanikę ale sprawia też, że staje się on trudniejszy do wykorzystywania w innych celach
  • zachęcenie do tworzenia re-używalnej logiki - umożliwiając łatwe tworzenie własnych Hooków zachęcamy do wykorzystywania ich w innych częściach aplikacji, często bez konieczności stosowania wzorców takich jak Render Props czy High order Components
  • czyste funkcje są łatwiejsze do zrozumienia - dotyczy to zarówno programistów (np. poprzez wyeliminowanie konieczności bindowania funkcji aktualizujących stan) jak i dla kompilatorów i bundlerów

Mechanizm Hooków - w połączeniu z innymi mechanizmami, tj. Context czy Suspense - zastępuje także dużą ilość przypadków, w których dotychczas stosowalibyśmy wzorzec HoC lub Render Props.

Adaptacja

Hooki nie zamierzają zastąpić komponentów klasowych poprzez wyeliminowanie tego API - stanowią one dopełnienie komponentów klasowych i umożliwiają przejście z jednej metody tworzenia komponentów na drugą. Jako iż wiele kodu wciąż używać będzie klas przez długi czas polecam mimo wszystko zapoznać się z oboma mechanizmami.

← Zaawansowane opcjeuseState →
  • Motywacja
  • Adaptacja
Bartosz Szczeciński © 2019 Materiał dostępny na zasadach licencji MIT.