RN组件和API概览

组件

  1. 跨平台组件
    ActivityIndicator: 菊花
    Button: 按鈕,自定义性差,一般不用
    FlatList:高性能的列表(不分块)
    Image:图片
    ImageBackground:背景图
    KeyboardAvoidingView:包裹住根据键盘调整位置的组件,可以防止键盘弹起时挡住视图
    Modal:模态视图
    Picker:选择器
    RefreshControl:下拉刷新
    ScrollView:滑动列表,内容一次性全部加载
    SectionList:高性能分块列表
    Slider:可以选择一个范围值的组件
    StatusBar:状态栏
    Switch:开关
    Text:文本
    TextInput:文本输入框
    TouchableHighlight:包裹有点击效果的视图,可用来自定义Button
    TouchableOpacity:相比TouchableHighlight来说不改变颜色,只改变透明度,更适合一般场景
    TouchableWithoutFeedback:点击没样式上的效果,用处不大。有且只有一个子节点
    View:基础视图
    VirtualizedList :FlatList和SectionList的底层实现。FlatList 和 SectionList 使用起来更方便,仅当想获得比 FlatList 更高的灵活性(比如说在使用 immutable data 而不是 普通数组)的时候,你才应该考虑使用 VirtualizedList。
    WebView:即将被移除,使用React-native-webView替代

  2. iOS平台组件
    DatePickerIOS:iOS平台日期選擇器,注意在onDateChange中更新date來刷新頁面
    MaskedViewIOS:同mask一样
    NavigatorIOS: 导航控制器,同样可以用跨平台的react-navigation来替代
    PickerIOS:用法同Picker
    ProgressViewIOS:进度条
    SafeAreaView:安全区域
    SegmentedControlIOS:在iOS设备上渲染一个UISegmentedControl组件
    SnapshotViewIOS:截图组件
    TabBarIOS:iOS平台的TabBarController,使用第三方的TabNavigator可实现跨平台
    TabBarIOS.Item:使用第三方的TabNavigator.Item可实现跨平台

  3. Android平台组件
    DrawerLayoutAndroid:Android导航视图,可以实现抽屉效果,我们推荐使用跨平台的react-navigation中的 DrawerNavigation 来代替此组件。
    ProgressBarAndroid:进度条
    ToolBarAndroid:工具栏
    TouchableNativeFeedback:Android上有原生点击效果的组件
    ViewPagerAndroid:Android上分页视图

汇总一下:22个跨平台组件,10个iOS特有组件,5个Android特有组件,共计37个组件。

API

  1. 跨平台API
    AccessibilityInfo:可以用它来查询读屏应用的当前状态,并且可以监听其状态变化
    Alert:在 iOS 和 Android 上显示一个静态的提示框
    AlertIOS:用于弹出一个 iOS 提示对话框
    Animated:动画
    AppRegistry:所有 React Native 应用的 JS 入口
    AppState:应用当前是在前台还是在后台,并且能在状态变化的时候通知
    AsyncStorage:是一个简单的、异步的、持久化的 Key-Value 存储系统,它对于 App 来说是全局性的,可用来代替 LocalStorage
    BackHandler:监听设备上的后退按钮事件。Android:监听后退按钮事件。如果没有添加任何监听函数,或者所有的监听函数都返回 false,则会执行默认行为,退出应用。tvOS(即 Apple TV 机顶盒):监听遥控器上的后退按钮事件(阻止应用退出的功能尚未实现)。iOS:尚无作用。
    CameraRoll:只提供了基本的访问本地图片的功能,并没有提供相册界面。对于多数开发者来说,可能第三方的react-native-image-crop-picker的功能更为完整易用(可多选、压缩、裁剪等)
    Clipboard:组件可以在 iOS 和 Android 的剪贴板中读写内容
    Dimensions:获取设备屏幕的宽高
    Easing:实现了常见的动画缓动函数
    Geolocation:地理定位,只定位不解析地名,Android上还基于Google服务,不好用
    ImageEditor: 裁剪图片
    ImageStore:图片存储器,大部分方法都只适用于iOS
    Interactionmanager:交互管理器,可以将一些耗时较长的工作安排到所有互动或动画完成之后再进行。这样可以保证 JavaScript 动画的流畅运行。
    Keyboard:用来控制键盘相关的事件。
    LayoutAnimation:当布局变化时,自动将视图运动到它们新的位置上。
    Linking:提供了一个通用的接口来与传入和传出的 App 链接进行交互。
    NetInfo:获取设备当前的联网状态。
    PanResponder:可以将多点触摸操作协调成一个手势。它使得一个单点触摸可以接受更多的触摸操作,也可以用于识别简单的多点触摸手势。
    PixelRatio: 提供了访问设备的像素密度的方法。可以实现2X、3X图片的功能。
    Share:系统分享组件
    Systrace:性能调试,使用可参考文档:https://reactnative.cn/docs/performance/
    Transforms:对View做一些转换
    Vibration:控制设备振动,触发是异步的,模拟器上调用没有效果。

  2. iOS平台API
    ActionSheetIOS:ActionSheet 弹出框
    ImagePickerIOS:图片选择器
    PushNotificationIOS:推送
    Settings: NSUserDefault的封装
    VibrationIOS:废弃,用Vibration替代

  3. Android平台API
    BackAndroid:已弃用。请使用BackHandler代替
    DatePickerAndroid:打开一个标准的 Android 日期选择器的对话框
    PermissionsAndroid:管理一些需要弹出提示框供用户选择的权限
    TimePickerAndroid:打开一个标准的 Android 时间选择器的对话框
    ToastAndroid:用于在 Android 设备上显示一个悬浮的提示信息。

备注:一些涉及样式属性的API此处就不列举出来了,可以参考:https://reactnative.cn/docs/getting-started/

你可能感兴趣的:(RN组件和API概览)