Назад

Вивчення розширених шаблонів React: Compound Components, Render Props та Hooks

зображення
Джерело: http://surl.li/hsiez

Привіт, ентузіасти та віддані учні React! Настав час ще раз глибоко зануритися у світ React. Сьогодні ми збираємося розібрати деякі просунуті шаблони React: Compound Components, Render Props та Hooks. Розуміючи та використовуючи ці шаблони, ви можете вдосконалити свої навички розробки React і створювати більш надійні та масштабовані програми.

Compound Components

Compound Components (складові компоненти) — це шаблон дизайну, у якому компоненти використовуються разом, таким чином, що вони мають спільний неявний стан, що дозволяє вам писати більш декларативні та гнучкі API. Найпоширенішим прикладом можуть бути елементи <select> та <option> у HTML.

У React типова реалізація може виглядати так:

зображення

Тут компонент Tabs ділиться своїм станом із дочірніми елементами Tab, контролюючи, яка вкладка є активною.

Render Props

Render Props (рендер-пропс) — це техніка в React для обміну кодом між компонентами використовуючи проп, значення якого є функція. Це чудовий шаблон для повторного використання поведінки між компонентами. Хорошим прикладом є компонент MouseTracker, який відстежує положення миші:

зображення

Тут будь-який компонент, якому потрібно знати положення миші, може використовувати MouseTracker і забезпечити функцію рендеригну, щоб налаштувати те, що він хоче відобразити в цьому стані.

Hooks

Hooks (хуки), представлені в React 16.8, дозволяють використовувати стан та інші особливості React без написання класу. Вони дозволяють повторно використовувати логіку стану між компонентами, розбиваючи складні компоненти на менші функції залежно від того, які частини пов’язані.

Ось базовий приклад використання хуків useState і useEffect:

зображення

У цьому прикладі useState і useEffect дозволяють нам додати стан і побічні ефекти (відповідно) до нашого функціонального компонента.

Пам’ятайте, коли справа доходить до хуків, це набагато більше, ніж useState і useEffect. Не забувайте про інші вбудовані хуки, такі як useContext, useReducer і useRef, і пам’ятайте, що ви також можете створювати власні власні хуки!

Висновок

Розширені шаблони React такі як Compound Components, Render Props і Hooks, дійсно відкривають новий рівень потужності та гнучкості в наших додатках. Вони дозволяють нам створювати код, який можна багаторазово використовувати, масштабувати та підтримувати, що має вирішальне значення для розвитку додатків.

Compound Components пропонують декларативний API і більшу гнучкість, Render Props допомагають спільно використовувати поведінку між компонентами, а Hooks дозволяють використовувати методи стану та життєвого циклу у функціональних компонентах, а також витягувати логіку компонентів у функції для повторного використання.

Однак, як і з усіма речами в програмуванні, вони мають свої власні компроміси. Вони можуть ускладнити код, і розуміння того, як вони працюють, може потребувати серйозного навчання. З огляду на це, після освоєння ці шаблони можуть значно покращити вашу кодову базу та вашу ефективність як React-розробника.

Як завжди, найкращий спосіб вчитися на практиці. Спробуйте інтегрувати ці шаблони у свій наступний проект або візьміть існуючий проект і подивіться, як ви можете його рефакторити за допомогою цих розширених шаблонів. Ймовірно, ви побачите, що ці потужні шаблони можуть зробити ваш код чистішим, легшим для читання та цікавішим для написання.