Фундаментальні концепції React в React Native

Базові концепції:

  • Компонент

  • JSX

  • Пропс (props)

  • Стейт (state)

Компонент

Логіка побудови верстки застосунку - використання компонентів. Окрім базових компонентів користувачі можуть створювати власні компоненти для повторного використання у своєму застосунку.

Компоненти бувають класові та функціональні. Далі розглянемо створення власного компоненту (класового і функціонального).

Класові компоненти

Згори класового компонента роблять всі необхідні імпорти. Зокрема імпортують Component із бібліотеки React і базові компоненти з бібліотеки React Native, а також інші імпорти, необхідні для функціонування компонента. Оголошується класовий компонент так само як і в React: class ComponentName extends Component. Функція render() {} слугує для повернення верстки компонента. Ну і звичайно свій компонент можна експортувати для використання в інших компонентах. Використовуйте як іменований, так і дефолтний експорт.

chevron-rightРезервний кодhashtag

Функціональні компоненти

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

chevron-rightРезервний кодhashtag

JSX

Вся логіка використання JSX зберігається і в React Native. Не забувайте правильно закривати компонент: <Text>Hello, I am your friend! </Text>.

Щоб застосувати JavaScript в JSX його пишуть всередині фігурних дужок:

chevron-rightРезервний кодhashtag

Кастомні компоненти

Кастомні компоненти збираються із базових компонентів. Потім їх можна імпортувати з зовнішнього файлу і використовувати у верстці. Так само можуть бути як класові так і функціональні компоненти. Нижче в прикладах якраз <Friend /> є кастомним компонентом, який отримує як налаштування значення свого тексту.

Пропс (props)

Props - налаштування компонента, які дозволяють його кастомізувати. Можна компоненту передавати свої пропси.

chevron-rightРезервний кодhashtag

Для налаштування компонента передбачені нативні пропси компонентів, наприклад для Image - посилання на картинку, або стилізація компонента тощо. Повний перелік пропсів для кожного компонента можна отримати на офіційній сторінціarrow-up-right React Native.

chevron-rightРезервний кодhashtag
circle-info

Зауважте, що в фігурних дужках вказані ще одні фігурні дужки, тому, що цей пропс приймає обʼєкт. А передавати туди можна число, змінну, рядок, масив тощо.

Стейт (state)

Компоненти перерендерюються також коли змінюється стейт. Концепції стейту для React Native зберігаються такі ж як і для React.

Стейт класового компонента

В класових компонентах стейт зберігається в обʼєкті state. У ньому за кожне значення відповідає параметр, а його значення після двох крапок. Щоб звертатися до стейту не забуваємо використовувати контекст: this.state. Так само при перезаписі стейту не забуваємо контекст this.setState. Так само при перезаписі значення стейту просто вказуємо нове значення. Якщо його потрібно змінити, то використовуємо prevState.

chevron-rightРезервний кодhashtag

Стейт функціонального компонента

Для використання стейту в функціональних компонентах використовуємо хук useState. В такому разі не використовуємо контекст. Правила зміни стейту зберігаються такі самі як і для React.

chevron-rightРезервний кодhashtag

Посилання на офіційну документацію:

База Reactarrow-up-right

Last updated