用好React Native,你还需要这么做

 

“LearnOnce,WriteAnyWhere”...



“Learn Once,Write AnyWhere”  ,React Native面世以来,确实让我们看到它所带来的各种便利,运用 React 和 Relay 提供的声明式编程模型,写JavaScript来构建 iOS 和 Android 应用,这种做法使得代码既精简又更容易理解和阅读,被不少人称作为目前最火的前端技术,同时这些代码还可以在多个平台共享,不用再开发时等待漫长的编译,加快了迭代速度。发布更快,细节更完美,运行更流畅的特点使不少喜欢尝鲜的程序员投入到这个领域。然而为了让用户更加流畅的使用应用,优化性能不可避免的会成为工作的一大重要部分,虽然官方一直尽可能的优化其性能为了能让其媲美原生App的速度,现实感觉有点不尽人意。

那么在实践中,我们会遇到哪些React Native的性能问题,以及有什么优化方案呢?

1、Navigator页面切换动画

场景:一旦用Navigator后,定义的切换动画会使JS线程出现严重的掉帧(卡顿现象)。

原因:NavigatorIOS的切换动画是跑在UI主线程上,而不是JS线程上的,所以不受JS线程上的掉帧影响。

2、数据类型

场景:基本上每个页面都需要加载和渲染数据,如果页面列表数据结构复杂,有时刷新数据时state中的未必有修改,但是遇到这样的语句this.setState({data:samedata}) ,界面却被重新render。

原因:这是react-native的生命周期,当你调用setState时,总是会触发render的方法。

3、数据加载

场景:在首屏页面加载时,加载前6分钟的数据分6页显示,并需保持当前选择页的时间的前6分钟,如果按照此场景开发所遇到问题是:首页加载时间太长,加载新数据时页面显示加载用户体验不顺畅。

原因:首页请求数据量过大,导致首屏页面加载很慢;后台数据更新时导致用户体验不顺畅。

4、组件响应速度

场景:一个页面包含多个类别的列表,由于列表都比较长,所以需要增加折叠功能并增加折叠动画,问题是当点击折叠或者展开按钮时出现延迟响应和动画掉帧的问题。

原因:在TouchableHighlight组件的onPress方法中执行了setState的操作,由于列表的对象相对来说比较复杂需要大量计算的工作,所以导致了延迟响应和JS线程的掉帧。

5、页面加载与显示

场景:某些页面需要访问一个或多个业务数据服务,虽然取数据是异步,但是页面总是会有一段较长的loading的时间。

原因:首屏所需的数据服务访问的等待数据时间较长。

以上的这些问题在React Native成长期这个阶段可以说是经常能够遇到,用好React Native还应该注意什么呢?应用性能管理大讲堂2016年终盛典携程网魏晓军老师将现场畅谈React Native性能优化之拆包技术及其实现原理。

想要了解更多性能优化干货
应用性能管理大讲堂2016年终盛典——心路,将迎来更全面的技术干货,更强大的讲师阵容,一起听互联网金融、O2O、游戏、OTA、电商、在线视频行业领域大咖们走过的路,踩过的坑,让2016那些坑成为过去,迎来一路畅通的2017!

地点:上海市张江高科科技园区 张江美居酒店

时间:11月26日周六 09:30

参与方式:免费报名

09:00-09:30   签到

09:30-10:10   盛大游戏高级研究员 胥峰

《云和容器技术在游戏公司的探索和实践》

10:15-10:55   听云技术支持总监   王凡

《秒极时代下的全栈溯源》

11:00-11:40   饿了么移动技术部研发经理 张春林

《饿了么移动端性能优化实践》

11:45-12:00   互动抽奖

12:00-13:00   午休

13:00-13:40   蚂蚁金服高级研发工程师   李嘉鹏

《聊聊你不一定知道的JVM性能问题》

14:45-15:25   携程框架研发部高级研发经理 魏晓军

《React Native性能优化之拆包技术及其实现原理》

15:30-16:10   哔哩哔哩运维开发负责人  梁晓聪

《Docker在B站的应用实战分享》

16:15-16:55   天天拍车运维总监 李强

《运维如何理解高并发》

17:00-17:15    互动抽奖

盛大游戏高级研究员 胥峰

资深运维专家,有10年运维经验,在业界颇具威望和影响力。2011年加入盛大游戏,工作至今,曾参与盛大游戏多款大型端游和手游的运维,主导运维自动化平台的功能设计和实施。通过公众号“运维技术实践”发布 “网络分析技术实践”系列主题技术文章,引发万人阅读转发。拥有工信部认证高级信息系统项目管理师资格

演讲主题《云和容器技术在游戏公司的探索和实践》
听云华东大区技术总监 王凡

20年IT运维管理经验;17年APM工作经验;中国最早一代从事APM方案咨询和服务。曾任美国冠群电脑(中国)有限公司(CA)业务技术架构师、惠普公司软件部技术顾问、深圳市华为技术有限公司高级产品经理;美国冠远科技有限公司资深产品经理;亿阳信通股份有限公司资深产品经理;合力思(中国)有限公司技术经理。

演讲主题《秒极时代下的全栈溯源》
饿了么移动技术部研发经理 张春林

饿了么MT移动技术部研发经理,负责商户端和后台支撑的移动开发,对于系统框架以及trouble shooting有较为丰富的经验积累,兴趣点在于新技术的研究和需求预研。毕业于中山大学,6+移动开发经验,4+年研发管理经验,先后就职于TP-LINK,百度UUCUN事业部。

演讲主题《饿了么移动端性能优化实践》
蚂蚁金服JVM专家  李嘉鹏

花名寒泉子,蚂蚁金服JVM专家,公众号“你假笨“博主

演讲主题《聊聊你不一定知道的JVM性能问题》
携程框架研发部高级研发经理 魏晓军

携程框架研发部高级研发经理,负责携程无线前端框架团队。2011年加入携程,先后从事携程PC端前端框架、数据可视化框架、无线端前端框架等开发工作。 现负责携程无线前端框架的开发和性能优化工作以及React Native的研究和引入工作,也是《React Native入门与实战》的作者之一。

演讲主题《React Native性能优化之拆包技术及其实现原理》
哔哩哔哩运维开发负责人  梁晓聪

哔哩哔哩弹幕网(B站)运维开发负责人,曾就职猎豹移动任运维开发负责人。目前主要负责哔哩哔哩视频网站运维与运维技术栈建设,对于服务端负载均衡高可用,持续交付,集中式配置管理领域具有丰富经验。

演讲主题《Docker在B站的应用实战分享》
天天拍车运维总监 李强

运维帮专家顾问团成员,先后在AdMaster、饿了么担任运维经理,现任天天拍车运维总监,主要负责天天拍车运维架构的管理、持续优化以及运维团队的建设、培养。拥有9年以上运维及管理经验。 同时作为国内最早一批思科网络模拟器的推广者、虚拟化先锋论坛的创始人,一直致力于网络模拟器使用的推广,为国内培养网络工程师尽一份力。

演讲主题《运维如何理解高并发》
零距离接触技术专家
暖心午餐+精彩互动环节
丰厚的技术礼品

猛戳原文
300个免费席位!快快报名!


    关注 听云


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册