React Native 全栈开发实战班 - 核心组件与导航

在 React Native 中,组件是构建用户界面的基本单元。React Native 提供了丰富的内置组件,涵盖了从基础布局到复杂交互的各种需求。本章节将详细介绍常用的内置组件,并重点讲解列表与滚动视图的使用。

1. 常用内置组件详解

React Native 提供了许多内置组件,开发者可以利用这些组件快速构建应用界面。以下是一些常用的内置组件及其详细用法:

1.1 View

<View> 组件是 React Native 中最基础的布局组件,类似于 HTML 中的 <div>。它用于包裹其他组件,并支持 Flexbox 布局。

常用属性:

  • style:定义组件的样式。
  • flexDirection:定义主轴方向(rowcolumn)。
  • justifyContent:定义子元素在主轴上的对齐方式。
  • alignItems:定义子元素在交叉轴上的对齐方式。

示例:

javascript 复制代码
<View style={{ flex: 1, backgroundColor: '#f0f0f0', padding: 10 }}>
  <Text>Hello, World!</Text>
</View>
1.2 Text

<Text> 组件用于显示文本内容。

常用属性:

  • style:定义文本样式。
  • onPress:定义点击事件处理函数。
  • numberOfLines:限制文本显示的行数。

示例:

javascript 复制代码
<Text style={{ fontSize: 18, color: '#333' }}>Hello, React Native!</Text>
1.3 Image

<Image> 组件用于显示图片。

常用属性:

  • source:图片资源,可以是本地路径或网络地址。
  • style:定义图片样式。
  • resizeMode:定义图片的缩放模式(如 cover, contain, stretch)。

示例:

javascript 复制代码
<Image
  source={{ uri: 'https://example.com/image.png' }}
  style={{ width: 200, height: 200 }}
  resizeMode="cover"
/>
1.4 TextInput

<TextInput> 组件用于用户输入文本。

常用属性:

  • style:定义输入框样式。
  • placeholder:设置占位符文本。
  • value:绑定输入框的值。
  • onChangeText:定义文本变化时的处理函数。
  • secureTextEntry:是否显示为密码输入框。

示例:

javascript 复制代码
<TextInput
  style={{ height: 40, borderColor: '#ccc', borderWidth: 1, paddingHorizontal: 10 }}
  placeholder="请输入用户名"
  value={username}
  onChangeText={(text) => setUsername(text)}
/>
1.5 Button

<Button> 组件用于创建按钮。

常用属性:

  • title:按钮标题。
  • onPress:定义按钮点击事件处理函数。
  • color:设置按钮颜色。

示例:

javascript 复制代码
<Button
  title="Press Me"
  onPress={() => console.log('Button Pressed')}
  color="#007bff"
/>
1.6 TouchableOpacity

<TouchableOpacity> 组件用于处理用户点击事件,并提供点击反馈效果。

常用属性:

  • onPress:定义点击事件处理函数。
  • activeOpacity:设置点击时的透明度。

示例:

javascript 复制代码
<TouchableOpacity onPress={() => console.log('TouchableOpacity Pressed')} activeOpacity={0.8}>
  <Text>Press Me</Text>
</TouchableOpacity>
1.7 ScrollView

<ScrollView> 组件用于创建可滚动的视图,适用于内容较多但数量有限的情况。

常用属性:

  • contentContainerStyle:定义内容容器的样式。
  • horizontal:是否水平滚动。
  • showsVerticalScrollIndicator:是否显示垂直滚动条。

示例:

javascript 复制代码
<ScrollView>
  <Text>内容1</Text>
  <Text>内容2</Text>
  <Text>内容3</Text>
  {/* 更多内容 */}
</ScrollView>
1.8 FlatList

<FlatList> 组件用于高性能地渲染长列表数据。

常用属性:

  • data:列表数据源。
  • renderItem:定义列表项的渲染函数。
  • keyExtractor:定义列表项的唯一键。
  • ListHeaderComponent:定义列表头部组件。
  • ListFooterComponent:定义列表底部组件。

示例:

javascript 复制代码
const data = [
  { id: '1', title: 'Item 1' },
  { id: '2', title: 'Item 2' },
  // 更多数据
];

<FlatList
  data={data}
  renderItem={({ item }) => <Text>{item.title}</Text>}
  keyExtractor={(item) => item.id}
/>
1.9 SectionList

<SectionList> 组件用于渲染分组列表数据。

常用属性:

  • sections:分组数据源。
  • renderItem:定义列表项的渲染函数。
  • renderSectionHeader:定义分组头部的渲染函数。
  • keyExtractor:定义列表项的唯一键。

示例:

javascript 复制代码
const sections = [
  { title: 'A', data: ['Apple', 'Apricot'] },
  { title: 'B', data: ['Banana', 'Blueberry'] },
  // 更多分组
];

<SectionList
  sections={sections}
  renderItem={({ item }) => <Text>{item}</Text>}
  renderSectionHeader={({ section }) => <Text style={{ fontWeight: 'bold' }}>{section.title}</Text>}
  keyExtractor={(item, index) => item + index}
/>
1.10 SafeAreaView

<SafeAreaView> 组件用于适配不同设备的屏幕安全区域,避免内容被刘海、状态栏等遮挡。

示例:

javascript 复制代码
<SafeAreaView style={{ flex: 1 }}>
  <View style={{ flex: 1, backgroundColor: '#f0f0f0' }}>
    <Text>Hello, SafeAreaView!</Text>
  </View>
</SafeAreaView>

导师答疑

相关推荐
Misha韩1 小时前
React Native 初始化项目和模拟器运行
react native
独立开阀者_FwtCoder1 小时前
【Augment】 Augment技巧之 Rewrite Prompt(重写提示) 有神奇的魔法
前端·javascript·github
我想说一句2 小时前
事件机制与委托:从冒泡捕获到高效编程的奇妙之旅
前端·javascript
汤姆Tom2 小时前
JavaScript reduce()函数详解
javascript
小飞悟2 小时前
你以为 React 的事件很简单?错了,它暗藏玄机!
前端·javascript·面试
中微子2 小时前
JavaScript 事件机制:捕获、冒泡与事件委托详解
前端·javascript
蓝翔认证10级掘手2 小时前
🤯 家人们谁懂啊!我的摸鱼脚本它...它成精了!🚀
javascript
前端康师傅3 小时前
JavaScript 中你不知道的按位运算
前端·javascript
tianchang3 小时前
策略模式(Strategy Pattern)深入解析与实战应用
前端·javascript·代码规范
best6663 小时前
JavaScript的Math内置对象,到底是何方神圣?
javascript