RN与原生混合开发完美解决闪屏问题

      由于RN首次启动的时候,需要加载整个bundle,再render出首页面,这个过程通常需要耗费总计几百毫秒到一两秒不等。在默认工程中,这个过程中给用户展示出的都是白色的背景,因此用户会感觉到屏幕有一小段时间的白屏,像是卡顿一样 从而影响用户体验。如果是iOS原生与RN记性混合开发,原生调到RN页面时,这种情况就更加严重。每次跳转的时候再加载,都会卡顿0.3秒,体验很差。

     解决思路是需要在Appdelegate的时候将bundle加载好,不展示出来,然后跳转到RN页面的时候直接self.view addSubView,不用再加载了,以此解决闪屏问题。

点击原生按钮跳转到RN页面



解决思路

通过设置一个单例,在Appdelegate直接加载,然后在VC调用即可。

代码如下:


ViewController为原生界面,FirstViewController为加载RN界面的VC,BridgeManager为单例。

SYJ_BridegManager内部

Appdelegate内部


FirstViewController里面


结束。可以自己试一下效果。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 12,995评论 2 59
  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,019评论 3 119
  • 1.ios高性能编程 (1).内层 最小的内层平均值和峰值(2).耗电量 高效的算法和数据结构(3).初始化时...
    欧辰_OSR阅读 29,656评论 8 265
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,666评论 25 708
  • 【辛贝母】 打碎夜晚的是我 我不敢说 那些星星的碎渣还在灯光下熠熠生辉 现在凌晨 没有声响 河流的疼痛从窗户外爬进...
    辛贝母阅读 250评论 0 1