React Academy · Lektion

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.

Lektion 1 av 413 steg

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.

Gratis att börja

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

  1. React Native-kärnkomponenter jämfört med webbläsarens DOM
  2. Styling med StyleSheet-API:t och Flexbox
  3. Navigering med Expo Router
  4. Åtkomst till enhets-API:er: kamera, plats och pushnotiser
← Tillbaka till React Academy