react native pc有计划发展PC端么

react native开发的个人看法
自Facebook公布了开源的React Native以来,博主从事React Native开发已有将近半年的时间,而React Native当时的发布时间到现在也还没到1年,至此博主就这几个月的开发总结下个人对React Native的开发感受。
虽然距离开源时间还不到一年,但是RN的发展速度不得不说还是很快的,’write once,run anywhere‘是facebook推出React Native的目的,一次编写,到处运行。BAT以及淘宝,携程等都已经跨入这一领域,React Native已实现了对iOS和Android两大平台的支持,因为使用的是javascript脚本语言开发,‘即读及运行’,所以对于热更新这一块还是有很好的支持的,同时也可以很好的使用原生模块,在 JavaScript 中用 React 抽象操作系统原生的 UI 组件,代替
DOM 元素来渲染等。 在开发这一块,因为博主做的是iOS,以前一直用的是OC,所以个人觉得确实开发效率有很大的提高,组件的封装及复用,this.setState后的组件的自动重新渲染,高效易懂的基于css的弹性盒(Flexbox)样式布局,第三方组件的方便使用,前期flux框架到后来衍生出redux框架,相对于OC里的大量冗余代码,RN在开发上有着很高的开发效率。
&当然RN也有着不少的缺点,首先是因为先出的iOS支持,因此到现在为止还有不少组件是iOS only的,这样在android平台不得不重新封装一份。其次就是性能方面,虽然faceboo已经尽可能地去优化React Native,但是在某些场合RN还不能够替你决定如何进行优化(用原生代码写也无法避免),人工的干预依然是很有必要的。业务逻辑大部分都是运行在JavaScript线程上的,所以如果JavaScript线程有一帧没有及时响应,就被认为发生了一次丢帧,只要卡顿超过100ms,用户就会明显的感觉到。RN的性能优化方面涉及到切换动画卡顿,数据类型优化,资源优化,页面加载优化以及一些属性的设置方面,具体的优化有时间会在以后的文章里介绍。
以上就是本人对这个几个月开发RN的感受,希望能对准备学习RN或者有兴趣的程序猿们有所帮助,当然大家如果有什么想法或者技巧,以及不太明白的,欢迎大家留言或者邮箱我:
看过本文的人也看了:
我要留言技术领域:
取消收藏确定要取消收藏吗?
删除图谱提示你保存在该图谱下的知识内容也会被删除,建议你先将内容移到其他图谱中。你确定要删除知识图谱及其内容吗?
删除节点提示无法删除该知识节点,因该节点下仍保存有相关知识内容!
删除节点提示你确定要删除该知识节点吗?966,690 二月 独立访问用户
语言 & 开发
架构 & 设计
文化 & 方法
您目前处于:
React Native探索(一):背景、规划和风险
React Native探索(一):背景、规划和风险
日. 估计阅读时间:
欲知区块链、VR、TensorFlow等潮流技术和框架,请锁定
Author Contacted
相关厂商内容
告诉我们您的想法
允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p
当有人回复此评论时请E-mail通知我
允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p
当有人回复此评论时请E-mail通知我
允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p
当有人回复此评论时请E-mail通知我
赞助商链接
InfoQ每周精要
通过个性化定制的新闻邮件、RSS Feeds和InfoQ业界邮件通知,保持您对感兴趣的社区内容的时刻关注。
架构 & 设计
文化 & 方法
<及所有内容,版权所有 &#169;
C4Media Inc.
服务器由 提供, 我们最信赖的ISP伙伴。
北京创新网媒广告有限公司
京ICP备号-7
注意:如果要修改您的邮箱,我们将会发送确认邮件到您原来的邮箱。
使用现有的公司名称
修改公司名称为:
公司性质:
使用现有的公司性质
修改公司性质为:
使用现有的公司规模
修改公司规模为:
使用现在的国家
使用现在的省份
Subscribe to our newsletter?
Subscribe to our industry email notices?
我们发现您在使用ad blocker。
我们理解您使用ad blocker的初衷,但为了保证InfoQ能够继续以免费方式为您服务,我们需要您的支持。InfoQ绝不会在未经您许可的情况下将您的数据提供给第三方。我们仅将其用于向读者发送相关广告内容。请您将InfoQ添加至白名单,感谢您的理解与支持。Instagram 使用 React Native 的情况
招聘信息:
本文翻译自
发布的 React Native 自从 2015 年开源以来,已经走过了漫漫长路。仅仅两年后,它已经不仅被用于 Facebook 和 Facebook Ads Manager,
。开发速度定义了 Instagram 移动端的价值的一方面。2016年初,我们开始探索使用 React Native,使产品团队通过代码重用和快速迭代 更快地发布功能,使用
等工具,省去编译安装的时间。挑战将 React Native 集成到现有的 native app 中会带来额外的工作和挑战,但如果从头开始写就不会遇到这个问题。考虑到这一点,我们决定先移植我们可以想到的最简单的视图:推送通知视图。这个视图最初被实现为一个 WebView,所以我们觉得在一开始搞定它并不会太难。最重要的是,这个视图不需要我们建立很多导航结构——UI 很简单,翻译由后端确定。Android 方法计数出现的第一个问题是把 React Native 添加为一个依赖,而不是直接拖入整个库。否则不仅会增加包的大小,而且会对方法计数产生很大的影响,导致 Instagram for Android 的所有性能结果都是多指的(Instagram仍然是单指令!)。我们最终选择性地只拖入我们当时需要的视图管理器,然后自己实现那些不想拖入的依赖库。最终,React Native 添加了大约 3500 个方法。用 React Native 编写的功能几乎不需要定义 Java 方法,因此我们相信这种投资在长期内是值得的。指标作为推送通知设置实验的一部分,我们审核了 React Native 对多个指标的影响,包括崩溃和内存溢出。我们发现这些指标在实验开始时和用户离开 React Native 功能时都保持中间值(因此下次进入时我们不必重新创建它)。启动性能React Native 有一个启动开销,主要是由于必须将 JavaScript 包注入JavaScriptCore(React Native 在 iOS 和 Android 上使用的 VM)并实例化本机模块和视图管理器。虽然 React Native 团队在
取得了很大进步,但对于 Instagram 的集成,我们希望衡量这种差距,来判断这种权衡是否真的有意义。为此,我们将现有的 native Edit Profile 视图移植到 React Native。我们构建了产品基础架构,开始被产品团队并行使用(例如导航,翻译,核心组件)。我们最终利用了 React Native 团队已经构建的想法和基础,即Random Access Module Bundling,Inline Requires,Native Parallel Fetching 以及已经集成到框架中的大量内容。产品如上一节所述,Core Client 团队将推送通知设置和 Edit Profile 视图移植到 React Native。我们还移植了 Photos Of 视图,查看使用 React Native 加载列表时的性能:除了这些例子,还有几个产品团队发布了 React Native 的其它功能。推广文章Instagram 有一个轻量级界面,用于宣传推广文章。此产品最初实现为 WebView,因为该技术允许团队比 native 代码更快地迭代。WebView 的问题是,UX 不觉得 native 的启动非常缓慢。销售团队将此功能移植到 React Native,并在启动时间和用户体验方面取得了极大的改进。值得一提的是,尽管这是一个非常复杂的创建流程,它只添加了 6 个方法到 Android DEX 中。保存每个月有超过 6 亿人来到 Instagram,联系他们的朋友的同时发现了大量基于兴趣的灵感。然而,他们并不总是想在发现的时候就立马做什么,而是想在以后再回顾这个内容。为了满足这个需求,Save 团队实现了对
的支持,想回顾的时候就直接打开一个新的、私人的 tab,出现在个人资料上,但只对自己可见。Save 团队用 React Native实现了 iOS 版本的保存帖子列表。验证码验证码是从服务器触发的流量,以响应可疑操作(例如:当需要验证电话号码时,我们就认为您的账户已被盗用,等等)。过去,验证码已使用 WebView 实现。如前所述,WebView 适用于代码重用和快速迭代速度,但 UX 没有发现 native 和启动时间可能很慢。Protect and Care 团队开始着手改进其中一些流程。他们决定使用 React Native 来实现代码重用,同时保持良好的用户体验和快速启动时间。评论审核我们希望 Instagram 是一个安全的地方,每个人都可以捕捉和分享他们最重要的时刻。随着 Instagram 社区的发展和来自世界各地的人们分享更多的内容,我们希望努力工作以保持 Instagram 的积极和安全,尤其是您的照片和视频的评论。考虑到这一目标,Feed 团队推出了一项功能,允许用户审核他们在帖子上发布的评论。Lead Gen AdsLead Gen Ads 是一个界面的称呼,允许用户与广告客户共享信息。广告客户可以自定义此界面上的表单。结果React Native 允许产品团队更快地将功能发布到 iOS 和 Android app。下面的列表显示了一些产品的 app 之间重用代码百分比,可用作衡量提高开发人员的速度:推广文章:99%*短信验证码:97%评论审核:85%Lead Gen Ads:87%推送通知设置:92%补充我们最近将移动端基础架构开发团队( iOS 和 Android )搬到了纽约市。如果这篇博文让你对我们正在做的事感到兴奋,我们正在招聘——请查看我们的
是 Instagram 纽约 Core Client 团队的软件工程师。
微信扫一扫
订阅每日移动开发及APP推广热点资讯公众号:CocoaChina
您还没有登录!请或
点击量7437点击量7013点击量6252点击量5916点击量4290点击量4215点击量4165点击量3935点击量3452
&2016 Chukong Technologies,Inc.
京公网安备89

我要回帖

更多关于 react native 计划 的文章

 

随机推荐