RN中的几种定时器

第一类,加入定时器中的任务可能会延迟当前正在进行的动画。
1、setTimeout, clearTimeout
2、setInterval, clearInterval
3、setImmediate, clearImmediate
4、requestAnimationFrame, cancelAnimationFrame
使用:在需要的地方或者在componentDidMount 中用前面的方法(分别是setTimeoutsetIntervalsetImmediaterequestAnimationFrame)开启定时器,通常是:

componentDidMount() {
    this.timer = setTimeout(
      () => { console.log('把一个定时器的引用挂在this上'); },
      500
    );
  }
``` 把定时器的引用挂在this上。注意,在组件被销毁的时候晴空定时器:





<div class="se-preview-section-delimiter"></div>

这里写代码片
“`

componentWillUnmount() {
    // 如果存在this.timer,则使用clearTimeout清空。
    // 如果你使用多个timer,那么用多个变量,或者用个数组来保存引用,然后逐个clear
    this.timer && clearTimeout(this.timer);
  }

requestAnimationFrame():在一段时间内只执行一次,在每帧刷新之后执行。
setTimeout():只执行一次,会尽可能快的执行。
setImmediate():只执行一次,立即执行。
setInterval():每隔设定的时间便会执行一次,不是立即执行。

第二类,在稍后执行,不会延迟当前进行的任务。

InteractionManager.runAfterInteractions(() => {
   // ...需要长时间同步执行的任务...
});
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值