Проверяет понимание различий в подходах к стилизации между React Native Web и классическими веб-приложениями.
React Native Web позволяет использовать один и тот же код для мобильных и веб-платформ, но стилизация отличается от традиционного веба. Вместо CSS-файлов и селекторов вы работаете с объектами стилей, которые передаются в проп style компонентов. Это ближе к инлайн-стилям, но с оптимизацией через StyleSheet.create.
Ключевое отличие — отсутствие каскадности и наследования. Каждый компонент получает свои стили явно, нет глобальных правил или специфичности. Также нет поддержки псевдоклассов (hover, active) и медиазапросов в классическом виде. Для адаптивности приходится использовать JS-условия или библиотеки типа react-native-web-responsive.
import { StyleSheet, Text, View } from 'react-native';
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#f0f0f0',
},
title: {
fontSize: 20,
fontWeight: 'bold',
color: '#333',
},
});
export default function App() {
return (
<View style={styles.container}>
<Text style={styles.title}>Hello React Native Web</Text>
</View>
);
}Здесь видно, что стили — это обычные объекты, а не CSS-правила. Свойства вроде flex, justifyContent, alignItems работают как в мобильной версии, но на вебе они транслируются в CSS flexbox.
Такой подход удобен для кросс-платформенной разработки, когда нужно поддерживать и мобильные приложения, и веб. Однако для сложных веб-интерфейсов с богатой анимацией или сложными адаптивными раскладками он может быть ограничен. В таких случаях лучше использовать обычный CSS или CSS-in-JS библиотеки, которые дают больше возможностей.
Итог: React Native Web подходит для проектов, где важна унификация кода между платформами, но требует отказа от привычных CSS-возможностей в пользу ограниченного набора стилей.
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию