React Native-kärnkomponenter jämfört med webbläsarens DOM
Koppla View/Text/Image/ScrollView till deras DOM-motsvarigheter och förstå bridge-modellen.
React Native-kärnkomponenter jämfört med webbläsarens DOM är en gratis lektion i React Academy på CoddyKit. Detta är lektion 1 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för React Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i React Academy innehåller totalt 4 lektioner.
Varför finns det ingen HTML i React Native?
React Native renderar inbyggda UI-komponenter för iOS och Android, inte till en DOM i webbläsaren. Det finns ingen <div>, <p> eller <img> — varje plattform har sina egna inbyggda primitiver.
View — motsvarigheten till div
View är den mest grundläggande layoutcontainern i React Native. Den motsvarar UIView i iOS och android.view.View i Android. Tänk på den som en <div> som inte kan innehålla text direkt.
import { View, StyleSheet } from 'react-native';
function Card() {
return (
<View style={styles.card}>
{/* children go here */}
</View>
);
}
const styles = StyleSheet.create({ card: { padding: 16, borderRadius: 8 } });Text — motsvarigheten till p/span
Text krävs för all synlig text. Till skillnad från på webben kan en sträng inte placeras direkt i en View — den måste omslutas av <Text>.
import { View, Text } from 'react-native';
function Greeting() {
return (
<View>
<Text style={{ fontSize: 24, fontWeight: 'bold' }}>Hello!</Text>
<Text>Welcome to React Native.</Text>
</View>
);
}Image — motsvarigheten till img
Image renderar bilder. Använd propen source med en require() för lokala resurser eller ett { uri: '...' }-objekt för nätverksbilder.
import { Image } from 'react-native';
// Local asset:
<Image source={require('./assets/logo.png')} style={{ width: 100, height: 100 }} />
// Network image (must provide dimensions):
<Image source={{ uri: 'https://example.com/photo.jpg' }} style={{ width: 200, height: 150 }} />ScrollView — motsvarigheten till overflow:scroll
ScrollView är en rullningsbar container. Till skillnad från på webben måste den användas uttryckligen — View rullar inte. För långa listor bör FlatList användas.
import { ScrollView, Text } from 'react-native';
function Article({ paragraphs }) {
return (
<ScrollView>
{paragraphs.map((p, i) => <Text key={i}>{p}</Text>)}
</ScrollView>
);
}FlatList — den virtualiserade listan
FlatList renderar endast synliga objekt och återanvänder de som ligger utanför skärmen — vilket är avgörande för prestandan vid stora datamängder.
import { FlatList, Text, View } from 'react-native';
function UserList({ users }) {
return (
<FlatList
data={users}
keyExtractor={u => u.id}
renderItem={({ item }) => <Text>{item.name}</Text>}
/>
);
}TouchableOpacity — motsvarigheten till button
TouchableOpacity (och Pressable i nyare RN-versioner) lägger till tryckfeedback på valfri vy. Propen onPress hanterar tryck.
import { TouchableOpacity, Text } from 'react-native';
function Button({ onPress, title }) {
return (
<TouchableOpacity onPress={onPress} activeOpacity={0.7}>
<Text>{title}</Text>
</TouchableOpacity>
);
}TextInput — motsvarigheten till input
TextInput är det kontrollerade inmatningsfältet. Det stöder value, onChangeText, placeholder och tangentbordstyper.
import { TextInput, useState } from 'react-native';
function SearchBar() {
const [query, setQuery] = useState('');
return (
<TextInput
value={query}
onChangeText={setQuery}
placeholder="Search..."
keyboardType="default"
/>
);
}ActivityIndicator — laddningsindikatorn
ActivityIndicator är den inbyggda laddningsindikatorn. I iOS är den en cirkelformad spinner och i Android en cirkelformad Material-indikator för förlopp.
import { ActivityIndicator, View } from 'react-native';
<View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
<ActivityIndicator size="large" color="#4f46e5" />
</View>SafeAreaView
SafeAreaView lägger automatiskt till utfyllnad för enhetens sensorhål, statusfält och hemindikatorer i iOS och Android.
import { SafeAreaView } from 'react-native-safe-area-context';
export default function App() {
return (
<SafeAreaView style={{ flex: 1 }}>
<MyScreen />
</SafeAreaView>
);
}Modal
Modal renderar ett lager ovanpå appen. Propen visible styr om det visas.
import { Modal, View, Text } from 'react-native';
<Modal visible={showModal} animationType="slide" transparent={true}>
<View style={styles.overlay}>
<View style={styles.dialog}>
<Text>Are you sure?</Text>
</View>
</View>
</Modal>Snabbtest
Vilken React Native-komponent måste användas för att visa text på skärmen?
Sammanfattning
React Native översätter webbkoncept till inbyggda komponenter: View (div), Text (p), Image (img), ScrollView, FlatList (virtualiserad lista), TextInput (input) och TouchableOpacity (button). Använd alltid SafeAreaView för rotlayouten.
Lär dig React med en AI-lärare – gratis
Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.
- Kurser
- 88
- Lektioner
- 324
Vanliga frågor
Är lektionen ”React Native-kärnkomponenter jämfört med webbläsarens DOM” gratis?
Ja – hela texten till ”React Native-kärnkomponenter jämfört med webbläsarens DOM” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i React Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i React Academy innehåller totalt 4 lektioner.
Vad lär jag mig i ”React Native-kärnkomponenter jämfört med webbläsarens DOM”?
Koppla View/Text/Image/ScrollView till deras DOM-motsvarigheter och förstå bridge-modellen. Ni övar på React Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.
Behöver jag någon erfarenhet för att börja lära mig React Academy?
Du behöver inga förkunskaper. Utbildningen i React Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.
Hur lång tid tar lektionen ”React Native-kärnkomponenter jämfört med webbläsarens DOM”?
De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.
Kan jag skriva och köra kod i den här React Academy-lektionen?
Ja. Varje React Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.
Alla lektioner i den här kursen
- React Native-kärnkomponenter jämfört med webbläsarens DOM
- Styling med StyleSheet-API:t och Flexbox
- Navigering med Expo Router
- Åtkomst till enhets-API:er: kamera, plats och pushnotiser