React Native 首次加载白屏优化
RN首次加载都会有个白屏过程,一般都会有500ms+的白屏时间,原生页面开发同样的页面会能够快速显示而在RN页面中有个明显的等待过程,这个会影响用户体验。
1.使用过渡页面
简单处理可以在白屏过程中加个过度页面,通过设置RCTRootView的loadingView添加默认的加载过程
/*** A view to display while the JavaScript is loading, so users aren't presented* with a blank screen. By default this is nil, but you can override it with* (for example) a UIActivityIndicatorView or a placeholder image.*/ @property (nonatomic, strong) UIView *loadingView;
2.统一加载效果
一般页面数据从服务器获取,会有网络请求,可以将上面的loadingView和网络请求的loading效果统一。虽然并没有减少加载时间,但是可以给用户一直在请求数据的错觉,类似原生的交互效果。
3.并发操作
由于RN页面网络请求从request到response也会有个时间段,考虑将原生模块发送网络请求和RN加载并发操作,等待网络数据获取成功后重新渲染页面。
注:1.需要rootview初始化的同时发起网络请求,需要提前预置网络请求的接口和参数,建议将RN的业务进行统一入口处理,通过设置config数据或者前置传入。
2.由于并发操作,可能会出现两种情况,一种render临时界面结束网络请求数据还没有,需要等待数据返回再re-render,第二种网络请求数据已经返回RN初始化加载还没有完成,需要主动去原生模块去获取数据。
4. 页面数据缓存
如果页面实时性要求不高,可以用缓存数据来render临时页面。
5.共享RCTBridge
可以通过共享RCTBridge来初始化rootview,提前初始化RCTBridge,在iOS可以避免多次初始化JSCORE,不过这样会出现一些其他问题,后续再分析。。。
转载于:https://www.cnblogs.com/geweb/p/RNHomePage.html
React Native 首次加载白屏优化相关推荐
- vue实现首屏加载等待动画 避免首次加载白屏尴尬
为什么80%的码农都做不了架构师?>>> 0 直接上效果图 1背景,用户体验良好一直是个重要的问题. 2怎么加到自己项目里面? 复制css html代码到自己的index.ht ...
- Vue首屏加载白屏问题及解决方案
Vue首屏加载白屏问题及解决方案 首先说一下首页加载为什么会白屏? 先说下 SPA 单页面的加载过程 首先就是 html ,也就是 FP 阶段 FP(全称"First Paint" ...
- 解决React首屏加载白屏的问题
解决React首屏加载白屏的问题 参考文章: (1)解决React首屏加载白屏的问题 (2)https://www.cnblogs.com/smart-girl/p/10493205.html 备忘一 ...
- React Native :加载新闻列表
代码地址如下: http://www.demodashi.com/demo/13212.html 标签与内容页联动 上一节(React Native : 自定义视图)做到了点击标签自动移动,还差跟下面 ...
- 导致页面加载白屏时间长的原因有哪些,怎么进行优化?
一.白屏时间 白屏时间:即用户点击一个链接或打开浏览器输入URL地址后,从屏幕空白到显示第一个画面的时间. 二.白屏时间的重要性 当用户点开一个链接或者是直接在浏览器中输入URL开始进行访问时,就开始 ...
- webView加载白屏
记录个问题,webview加载一直白屏. webSettings.setJavaScriptCanOpenWindowsAutomatically(true); //支持通过JS打开新窗口webSet ...
- Postman打开一直加载白屏
问题:以前用的好好的,突然有天白屏打不来,一直加载中无响应 1.上网搜教程,环境变量也设置了POSTMAN_DISABLE_GPU.true 2.%appdata%目录下的postman文件也删除了( ...
- iframe加载白屏问题
注意: 当主URL为https协议,而iframe加载的URL为http协议,就会导致加载不出来现象: 修改方案: 把主URL修改为http协议
- rn webview加载本地静态html,React Native - Webview 加载本地文件
网上没找到合适的方法.用 react-native-fs 解决了一下,因为release之后静态文件地址发生改变,之前的引入就无效了 1.项目根目录引入静态文件的文件夹 2.创建一个html,刚才引入 ...
最新文章
- python自定义库文件路径
- 推荐系统算法_机器学习和推荐系统(二)推荐算法简介
- python实现tomasulo算法_手写算法-python代码实现KNN
- self motivated ddl
- 添加主键和添加主键约束有什么不同_为什么世界上不同国家之间的食品添加剂标准不同?...
- android小知识之意图(intent)
- 【深入理解JVM】:类加载器与双亲委派模型
- CentOS 5.5搭建Apache+PHP5.2x+MySQL5+Zend3(yum安装)
- ArcGIS Engine开发:框架/结构+对象库
- android自定义队列,Android 消息机制(一)消息队列的创建与循环的开始 Looper与MessageQueue...
- 计算机常见故障报警,常见听报警志与故障
- R交互图_shiny包
- N皇后问题——DFS+回溯剪枝
- Python Intro - xrange obsoleted by Python3
- 交换机的作用是什么?交换机功能及工作原理详解!
- vue3 组件naiveui报错: Extraneous non-props attributes (class) were passed to component but could not be
- 解决错误:IndentationError:expected an indented block
- 计算机语言的巴别塔——ANSI Unicode编码
- 2021年高考成绩查询衡阳市八中,衡阳市八大名校2020年高考成绩斐然,金榜题名正当时...
- 如何在 Vue 中导出数据至 Excel 表格 - 卡拉云
热门文章
- 用感知器对样本分类的matlab程序_新的基础算法:树突网络:一个用于分类、回归和系统识别的白箱模块...
- primefaces_Primefaces单选按钮,复选框示例
- java静态类_Java静态类
- python数据类型_Python数据类型
- kotlin协程_Kotlin协程
- python scikit_Python SciKit学习教程
- 转:标准C++中的string类的用法总结
- 函数调用的汇编语言详解
- Join a New Company
- 以太坊POA共识机制Clique源码分析