React Native · Mobile UI at native speed
What are the core components in React Native?
Short answer
The core primitives are View for layout, Text for text, Image for media, Pressable or Touchable for interaction, TextInput for input, ScrollView and FlatList for scrolling, and StyleSheet for styling.
React Native ships a small set of host components that map to native views. Everything else is built from them or from community libraries, so knowing their constraints is essential.
- View: a container for layout, borders, backgrounds and touch handling
- Text: the only component that can render a string; it supports nesting and text-specific styles
- Image: local or remote images, with resizeMode and optional caching libraries
- Pressable: a modern press handler with pressed and hover state callbacks
- TextInput: native text entry with keyboard and selection configuration
- ScrollView and FlatList: scrolling and virtualised lists
import { View, Text, Image, Pressable, TextInput } from "react-native";
export function ProfileCard() {
return (
<View>
<Image source={{ uri: "https://example.com/avatar.png" }} style={{ width: 48, height: 48 }} />
<Text>Asha Rao</Text>
<TextInput placeholder="Search" />
<Pressable onPress={() => console.log("pressed")}>
<Text>Follow</Text>
</Pressable>
</View>
);
}Text cannot live directly inside a View without a Text wrapper, and a View does not render strings. That trips up developers coming from the web. Layout is Flexbox by default, so most containers need explicit flex or size rules.
Follow-ups you should expect
Interviewers use these to check whether the first answer was understanding or memorisation.
- 1Why can't a View contain a raw string?
- 2What is the difference between Pressable and TouchableOpacity?
- 3How do you render a list efficiently?
- 4How do you make a component accessible?
Say it in the interview
The core primitives are View for layout, Text for anything textual, Image for media, Pressable for interaction, and TextInput for input. Lists use FlatList or ScrollView, and styling uses StyleSheet. I reach for community libraries only when a primitive is missing, because these components map directly to native views and define how layout, accessibility and touch behave.
Use this as a model, not a script. Saying it in your own words is what makes it survive follow-up pressure.
Related questions
Reading is step one
Now say it out loud.
Understanding an answer and delivering it under pressure are different skills. Rehearse this topic in a live React Native mock interview and get scored feedback on depth, clarity and confidence.