第三章:UI 组件——核心组件 + NativeWind + AI 生成
第三章:UI 组件——核心组件 + NativeWind + AI 生成
“React Native 核心组件只有几个:View、Text、Image、ScrollView、FlatList。NativeWind 让样式开发像 Web 一样直观。”
3.1 核心组件
flowchart
A[View] --> B[容器]
A --> C[布局]
D[Text] --> E[文本]
F[Image] --> G[图片]
H[ScrollView] --> I[滚动]
J[FlatList] --> K[长列表]
| 组件 | 用途 | 关键 props |
|---|---|---|
| View | 容器 | flex, style |
| Text | 文本 | numberOfLines |
| Image | 图片 | source, resizeMode |
| FlatList | 长列表 | data, renderItem |
3.2 NativeWind 样式
flowchart
A[className] --> B[NativeWind]
B --> C[Tailwind 类]
C --> D[编译为 StyleSheet]
常用类:
// 布局
<View className="flex-1 bg-white">
// 文字
<Text className="text-lg font-bold text-gray-900">
// 间距
<View className="p-4 m-2">
// 圆角
<View className="rounded-lg bg-blue-500">
3.3 AI 生成 UI 工作流
flowchart LR
A[描述需求] --> B[v0 生成 Web 版]
B --> C[Cursor 转换]
C --> D[NativeWind 适配]
转换提示词:
“将以下 Web React 组件转换为 React Native 版本,使用 NativeWind。保持相同视觉效果。”
3.4 常用组件模式
Card 组件:
classDiagram
class Card {
+children: ReactNode
+className?: string
}
class CardHeader
class CardContent
class CardFooter
Card --> CardHeader
Card --> CardContent
Card --> CardFooter
列表项组件:
flowchart
A[ListItem] --> B[Avatar/Icon]
A --> C[标题 + 描述]
A --> D[右侧操作]
3.5 暗色模式
// 使用 useColorScheme hook
import { useColorScheme } from "react-native"
function Component() {
const colorScheme = useColorScheme()
const bg = colorScheme === "dark" ? "bg-gray-900" : "bg-white"
// ...
}
本章小结
- 核心组件:View、Text、Image、FlatList
- NativeWind:Tailwind 语法的 RN 版本
- AI 生成:Web → RN 转换
- 暗色模式:useColorScheme hook
本章提示词模板
生成 UI 组件
用 React Native + NativeWind 生成以下组件:
组件:[描述功能]
需要包含:
1. TypeScript 类型定义(props)
2. NativeWind 样式(className)
3. 状态管理(useState/useCallback)
4. 事件处理
使用 shadcn-nativewind 组件。
继续阅读:第四章:导航架构