Стилізація компонентів
В React Native для стилізації компонентів використовується JavaScript. Усі основні компоненти підтримують prop style. Стилі пишуть у форматі ключ: значення. Якщо відповідник стилю в CSS складається із двох та більше слів, то використовують формат написання camelCase. Наприклад backgroundColor замість background-color. Числові значення передають без жодних одиниць вимірювання. Всі інші значення - це рядковий тип даних.
У React Native немає окремого формату даних для стилів (немає аналога CSS в web), немає медіазапитів та псевдоселекторів. Написання інлайн-стилів - це стандартний патерн стилізації компонентів.
У prop style можна передати масив обʼєктів стилів. Вони будуть зібрані і передані компоненту автоматично в одному збірному обʼєкті. Причому, якщо в наступному обʼєкті стилю буде дублюватися стиль, то він перебʼє стиль попереднього обʼєкта. Застосується останній варіант.
В даному випадку результуючим стилем буде: { color: "blue", fontWeight: "bold", fontSize: 30, backgroundColor: "yellow" }
StyleSheet
Використовувати наведену вище стилізацію компонентів недоцільно через неможливість повторного використання стилів для однотипних компонентів. Для оптимізації стилізації в React Native існує спеціальний клас StyleSheet.
Щоб його застосувати, створюють змінну (зазвичай її називають styles) яка є результатом виклику функції StyleSheet.create(). У неї передають обʼєкт у вигляді {ключ: об’єкт стилів}.
Тут так само можна комбінувати стилі компонента, як було раніше зазначено:
Стилізацію компонентів проекту можна організувати по аналогії підключення таблиці стилів CSS в HTML. Стилі всього застосунку винести в окремий файл styles.js, підключати його і використовувати в будь-якому компоненті застосунку.
Можна також створювати файл таблиці стилів персональний для кожного компоненту окремо. Утім це радше заплутає. Адже стиль компонентів повторюється і нема потреби ускладнювати структуру проекту.
Деякі опції стилізації виконуються завдяки props компонентів. Докладніше опис по пропсам компонентів можна дізнатися в офіційній документації.
Посилання на офіційну документацію:
Last updated