Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Remove new line to match original
  • Loading branch information
g12i committed Feb 24, 2019
commit 433cee8fed4edb155b3e76093c0510010d5afe0c
3 changes: 1 addition & 2 deletions content/docs/hooks-intro.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,8 +81,7 @@ Omówimy to szerzej w rozdziale [Używanie Hooka Efektu](/docs/hooks-effect.html

Oprócz tego, że jest przez nie trudniej pownownie użyć i organizować kod, odkryliśmy, że klasy mogą stanowić dużą przeszkod w nauce Reacta. Musisz rozumieć, jak działa `this` w JavaScrypcie, a działa on tu zupełnie inaczej, niż w większości języków programowania. Musisz pamiętać o wiązaniu (ang. *bind*) funkcji obsługi zdarzeń (ang. *event handlers*). Bez nieostatecznych [propozycji składni](https://babeljs.io/docs/en/babel-plugin-transform-class-properties/) kod jest bardzo rozwklekły. Ludzie mogą doskonale rozumieć właściwości (ang. *props*), stan i kierunek przepływu danych z góry, do dołu, a jednak klasy wciąż mogą sprawiać im problem. Rozróżnienie pomiędzy funkcyjnymi, a klasowymi komponentami, a także kiedy używać których, jest często przyczyną sporów, nawet pomiędzy doświadczonymi programistami Reacta.

Ponadto, React jest dostępny od około pięciu lat i chcemy mieć pewność, że pozostanie on istotny przez kolejne pięć. Jak pokazał [Svelte](https://svelte.technology/), [Angular](https://angular.io/), [Glimmer](https://glimmerjs.com/) i inni [kompilacja komponentów z wyprzedzeniem (ang. *ahead-of-time*)](https://en.wikipedia.org/wiki/Ahead-of-time_compilation) ma ogromny potencjał.
Szczególnie jeśli nie jest ograniczona tylko do szablonów. Niedawno eksperymentowaliśmy z [wyliczaniem wartości komponentów](https://github.com/facebook/react/issues/7323) z użyciem [Prepacka](https://prepack.io/) i zaobserwowaliśmy wstępnie obiecujące rezultaty. Odkryliśmy jednak, że komponenty klasowe mogą zachęcić do nieumyślnego stosowania pewnych wzorców, które spowodują spowolnienie tych optymalizacji. Klasy stanowią problem także dla naszych narzędzi, także dzisiaj. Na przykład, nie za dobrze się minifikują, a gorące przeładowanie (ang. *hot reloading*) jest niewiarygodne i często zrywane. Chcemy przedstawić interfejs API, który zwiększy prawdopodobieństwo tego, że kod będzie optymalizowany.
Ponadto, React jest dostępny od około pięciu lat i chcemy mieć pewność, że pozostanie on istotny przez kolejne pięć. Jak pokazał [Svelte](https://svelte.technology/), [Angular](https://angular.io/), [Glimmer](https://glimmerjs.com/) i inni [kompilacja komponentów z wyprzedzeniem (ang. *ahead-of-time*)](https://en.wikipedia.org/wiki/Ahead-of-time_compilation) ma ogromny potencjał. Szczególnie jeśli nie jest ograniczona tylko do szablonów. Niedawno eksperymentowaliśmy z [wyliczaniem wartości komponentów](https://github.com/facebook/react/issues/7323) z użyciem [Prepacka](https://prepack.io/) i zaobserwowaliśmy wstępnie obiecujące rezultaty. Odkryliśmy jednak, że komponenty klasowe mogą zachęcić do nieumyślnego stosowania pewnych wzorców, które spowodują spowolnienie tych optymalizacji. Klasy stanowią problem także dla naszych narzędzi, także dzisiaj. Na przykład, nie za dobrze się minifikują, a gorące przeładowanie (ang. *hot reloading*) jest niewiarygodne i często zrywane. Chcemy przedstawić interfejs API, który zwiększy prawdopodobieństwo tego, że kod będzie optymalizowany.

Aby rozwiązać te problemy, **Hooki pozwalają na korzystanie z większej liczby funkcjonalności Reacta, bez użycia klas.** Koncepcyjnie, komponentom Reactowym zawsze bliżej było do funkcji. Hooki zapewniają dostęp do funkcji, bez poświęcania praktycznej natury Reacta. Hooki zapewniają dostęp do imperatywnych furtek i nie wymagają nauki skomplikowanych technik programowania funkcjonalnego lub reaktywnego.

Expand Down