RN-API

组件生命周期
getDefaultProps 作用于组件类,只调用一次,返回对象用于设置默认的props,对于引用值,会在实例中共享。
getInitialState 作用于组件的实例,在实例创建时调用一次,用于初始化每个实例的state,此时可以访问this.props。
componentWillMount 在完成首次渲染之前调用,此时仍可以修改组件的state。
render 必选的方法,创建虚拟DOM。
componentDidMount 真实的DOM被渲染出来后调用,在该方法中可通过this.getDOMNode()访问到真实的DOM元素。此时已可以使用其他类库来操作这个DOM。
componentWillReceiveProps 组件接收到新的props时调用,并将其作为参数nextProps使用,此时可以更改组件props及state。
shouldComponentUpdate 组件是否应当渲染新的props或state,返回false表示跳过后续的生命周期方法,通常不需要使用以避免出现bug。在出现应用的瓶颈时,可通过该方法进行适当的优化。在首次渲染期间或者调用了forceUpdate方法后,该方法不会被调用。
componentWillUpdate 接收到新的props或者state后,进行渲染之前调用,此时不允许更新props或state。
componentDidUpdate 完成渲染新的props或者state后调用,此时可以访问到新的DOM元素。
componentWillUnmount 组件被移除之前被调用,可以用于做一些清理工作,在componentDidMount方法中添加的所有任务都需要在该方法中撤销,比如创建的定时器或添加的事件监听器。

API:

**AppRegistry** 是JS运行所有React Native应用的入口,应用的根组件应当通过AppRegistry.registerComponent方法注册自己,当注册完后,原生系统才可以加载应用的bundle包并且触发AppRegistry.runApplication来真正运行应用。 AppRegistry.registerComponent('Allen', () => Allen);带双引号的这个“Allen”代表的是这个APP的名称,后面的Allen代表的是所要显示的组件名称。

**AsyncStorage** 是一个简单的、具有异步特性的键值对的存储系统,全局的!替代LocalStorageAsyncStorage里面都有一个回调函数,而回调的第一个参数都是错误对象,如果发生错误,该对象就会展示错误信息,否则为null;每个方法都会返回一个Promise对象。

物理返回键:BackAndroid
onBackAndroid = () => {
        const { navigator } = this.props;
        const routers = navigator.getCurrentRoutes();
        console.log('当前路由长度:'+routers.length);
        if (routers.length > 1) {
            navigator.pop();
            return true;//接管默认行为
        }
        return false;//默认行为
    };

日期、时间选择器:
1.DatePickerAndroid:
方法:static open(options: Object) 打开一个标准的Android日期选择器的对话框
可选的options对象的key值如下:
date (Date对象或毫秒时间戳) - 默认显示的日期
minDate (Date对象或毫秒时间戳) - 可选的最小日期
maxDate (Date对象或毫秒时间戳) - 可选的最大日期
在用户选好日期后返回一个Promise,回调参数为一个对象,其中包含有action, year, month (0-11), day。如果用户取消了对话框,Promise仍然会执行,返回的action为DatePickerAndroid.dismissedAction,其他几项参数则为undefined。所以请在使用其他值之前务必先检查action的值。
注意:当Android手机操作系统低于5.0时,设置最小和最大日期会导致api异常,最好不要设置,而是在用户选择完成后再进行检查;api中的Open函数打开的界面是系统的界面,不能设置其任何显示样式,如何手机显示不同是因为系统被厂商深度定制了。
2.TimePickerAndroid:
方法:static open(options: Object)打开一个标准的Android时间选择器的对话框。
可选的options对象的key值如下:
hour (0-23) - 要显示的小时,默认为当前时间。
minute (0-59) - 要显示的分钟,默认为当前时间。
is24Hour (boolean) - 如果设为true,则选择器会使用24小时制。如果设为false,则会额外显示AM/PM的选项。如果不设定,则采取当前地区的默认设置。
在用户选好时间后返回一个Promise,回调参数为一个对象,其中包含有action, hour (0-23), minute (0-59)。如果用户取消了对话框,Promise仍然会执行,返回的action为TimePickerAndroid.dismissedAction,其他几项参数则为undefined。所以请在使用其他值之前务必先检查action的值。一般用TimePickerAndroid.timeSetAction的取反来判断。
注意:is24Hour在某些手机上不会产生作用,用户没有选择时间是因为按下了返回键或取消键;同样的api中的Open打开的是系统的界面。
3.DatePickerIOS
mode ('date', 'time', 'datetime') 选择器模式
onDateChange 当用户修改日期或时间时调用此回调函数。

**ActionSheetIOS**  分享和弹出多项选择操作
在iOS设备上显示一个ActionSheet弹出框:static showActionSheetWithOptions(options,callback)
在iOS设备上显示一个分享弹出框:static showShareActionSheetWithOptions(options,failureCallback,successCallback)

**monent** (时间格式化),安装:npm i moment --save
moment().format('YYYY-MM-DD HH:mm:ss'):取当前时间并格式化

定时器
setTimeout:设置定时任务,隔多久去执行;
setInterval:设置循环执行的任务,每隔多久循环执行一次;
setImmediate:设置立即执行的任务;
requestAnimationFrame:用递归来设置动画;相对setTimeout(fn, 0)来说,有优势,能够在动画流刷新后执行,即上一个动画流会完整执行;

**Geolocation** 手机定位
提供四个静态方法:getCurrentPosition watchPosition clearWacth stopObserving
Android需要在清单文件(AndroidManifest.xml)中加权限:
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
IOS需要在Info.plist中增加NSLocationWhenInUseUsageDescription字段来启用定位功能。如果你使用react-native init创建项目,定位会被默认启用。

**PanResponder** 手势识别
指定监视区域->定义监视器相关变量->准备监视器的事件处理函数->建立监视器->将监视器与监视区域关联

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值