1.View 组件(基础容器)
javascript">import { View, StyleSheet } from 'react-native';const MyComponent = () => {return (<View style={styles.container} // 样式pointerEvents="none" // 控制触摸事件:'none', 'box-none', 'box-only', 'auto'accessible={true} // 无障碍访问>{/* 子组件 */}</View>);
};const styles = StyleSheet.create({container: {flex: 1, // flex 布局padding: 10, // 内边距backgroundColor: '#fff', // 背景色borderRadius: 8, // 圆角elevation: 5, // Android 阴影shadowColor: '#000', // iOS 阴影颜色shadowOffset: { // iOS 阴影偏移width: 0,height: 2,},shadowOpacity: 0.25, // iOS 阴影透明度shadowRadius: 3.84, // iOS 阴影半径}
});
2.Text 组件(文本显示):
javascript">import { Text } from 'react-native';const TextExample = () => {return (<TextnumberOfLines={2} // 最大行数ellipsizeMode="tail" // 文本截断方式:'head', 'middle', 'tail', 'clip'selectable={true} // 是否可选择style={styles.text} // 样式onPress={() => {}} // 点击事件>这是一段文本</Text>);
};const styles = StyleSheet.create({text: {fontSize: 16, // 字体大小fontWeight: 'bold', // 字体粗细color: '#333', // 文字颜色textAlign: 'center', // 文本对齐lineHeight: 24, // 行高letterSpacing: 0.5, // 字间距textDecorationLine: 'underline', // 文本装饰线}
});
3.Image 组件(图片显示)
javascript">import { Image } from 'react-native';const ImageExample = () => {return (<Imagesource={{ // 图片源uri: 'https://example.com/image.jpg',// 或本地图片:source={require('./image.jpg')}}}style={styles.image} // 样式resizeMode="cover" // 缩放模式:'cover', 'contain', 'stretch', 'center'blurRadius={0} // 模糊效果fadeDuration={300} // 淡入动画时长onLoad={() => {}} // 加载完成回调onError={() => {}} // 加载错误回调defaultSource={require('./placeholder.jpg')} // 加载占位图/>);
};const styles = StyleSheet.create({image: {width: 200, // 宽度height: 200, // 高度borderRadius: 100, // 圆角}
});
4.TouchableOpacity 组件(可点击容器):
javascript">import { TouchableOpacity } from 'react-native';const ButtonExample = () => {return (<TouchableOpacitystyle={styles.button} // 样式activeOpacity={0.7} // 按下时的透明度onPress={() => {}} // 点击事件onLongPress={() => {}} // 长按事件disabled={false} // 是否禁用><Text>点击我</Text></TouchableOpacity>);
};const styles = StyleSheet.create({button: {padding: 10,backgroundColor: '#007AFF',borderRadius: 5,alignItems: 'center', // 子元素水平居中justifyContent: 'center', // 子元素垂直居中}
});
5.TextInput 组件(输入框):
javascript">import { TextInput } from 'react-native';const InputExample = () => {const [text, setText] = useState('');return (<TextInputvalue={text} // 输入值onChangeText={setText} // 值改变回调placeholder="请输入..." // 占位文本placeholderTextColor="#999" // 占位文本颜色keyboardType="default" // 键盘类型secureTextEntry={false} // 密码输入模式multiline={false} // 多行输入maxLength={100} // 最大长度autoCapitalize="none" // 自动大写autoCorrect={false} // 自动纠正style={styles.input} // 样式onFocus={() => {}} // 获得焦点回调onBlur={() => {}} // 失去焦点回调/>);
};const styles = StyleSheet.create({input: {height: 40,borderWidth: 1,borderColor: '#ddd',borderRadius: 5,paddingHorizontal: 10,backgroundColor: '#fff',}
});
6.ScrollView 组件(滚动容器):
javascript">import { ScrollView, RefreshControl } from 'react-native';const ScrollExample = () => {const [refreshing, setRefreshing] = useState(false);return (<ScrollViewstyle={styles.scrollView} // 容器样式contentContainerStyle={styles.content} // 内容容器样式horizontal={false} // 是否水平滚动showsVerticalScrollIndicator={false} // 显示垂直滚动条bounces={true} // iOS 弹性效果scrollEnabled={true} // 是否可以滚动refreshControl={ // 下拉刷新控件<RefreshControlrefreshing={refreshing}onRefresh={() => {setRefreshing(true);// 刷新逻辑setTimeout(() => setRefreshing(false), 2000);}}/>}>{/* 滚动内容 */}</ScrollView>);
};const styles = StyleSheet.create({scrollView: {flex: 1,},content: {padding: 15,}
});
这些是最基础也是最常用的组件,每个组件都有很多配置项和样式属性。建议:
- 根据实际需求选择合适的组件
- 注意性能优化
- 考虑平台差异(iOS/Android)
- 合理使用样式和布局