-
Notifications
You must be signed in to change notification settings - Fork 509
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
React Native概述:背景、规划和风险 #18
Comments
mark 持续关注 |
mark |
1 similar comment
mark |
make |
mark |
5 similar comments
mark |
mark |
mark |
mark |
mark |
实践中发现ListView性能问题严重,特别是在加了renderFooter后,cannot find single active touch 和 JS has only made partial progress to catch up to UIKit 这两个问题也是狠头疼 |
mark |
1 similar comment
mark |
我也在写一个项目, 发现里面组件有些功能比较薄弱, 所以修改他得源代码 地址 , 4S下经常crash, 6很稳定 |
mak |
1 similar comment
mak |
mark |
1 similar comment
mark |
Mark |
mark |
5 similar comments
mark |
mark |
mark |
mark |
mark |
mark一下 |
别mark了大家,邮件提醒会烦死 |
@az8321550 可以 unsubscribe |
mark |
👍 |
mark |
4 similar comments
mark |
mark |
mark |
mark |
mk |
mark |
3 similar comments
mark |
mark |
mark |
thx |
windows党表示 :-( |
我竟然没找到猜你喜欢那个模块。。。 |
#mark |
mark |
1 similar comment
mark |
,MARK |
maik |
mark |
1 similar comment
mark |
mark |
2 similar comments
mark |
mark |
m |
mark |
2 similar comments
mark |
mark |
Facebook在3.26 F8大会上开源了React Native,本文是对React Native的技术背景、规划和风险的概述。看得比较仓促,问题处请直接回复。
组里的同学于4.2完成了天猫iPad客户端“猜你喜欢”业务的React Native改造(4月中发版)。本周开始陆续放出性能/体验、稳定性、扩展性、开发效率等评估结果。
图1 - 4.2已完成React Native改造的业务
背景
为什么需要 React Native
摘自3.26 React Native的发布稿,加粗的关键字传达了React Native的设计理念:_既拥有Native的用户体验、又保留React的开发效率_。这个理念似乎迎合了业界普片存在的痛点,开源不到1周github star破万,目前是11000+。
图1 - React Native github
React Native项目成员Tom Occhino发表的React Native: Bringing modern web techniques to mobile(墙外)详细描述了React Native的设计理念。Occhino认为尽管Native开发成本更高,但现阶段Native仍然是必须的,因为Web的用户体验仍无法超越Native:
Occhino没提到的还有Native能实现更丰富细腻的动画效果,归根结底是现阶段Native具有更好的人机交互体验。笔者认为这些例子是有说服力的,也是React Native出现的直接原因。
图2 - Occhino在F8分享了React Native(Keynote)
“Learn once, write anywhere”
“Learn once, write anywhere”同样出自Occhino的文章。因为不同Native平台上的用户体验是不同的,React Native不强求一份原生代码支持多个平台,所以不提“Write once, run anywhere”(Java),提出了“Learn once, write anywhere”。
图3 - “Learn once, write anywhere”
这张图是笔者根据理解画的一张示意图,自下而上依次是:
前文多处提到的React是Facebook 2013年开源的Web开发框架,笔者在翻阅其2013年发布稿时,发现这么一段:
图4 - 摘自React发布稿(2013)
React本身也是个庞大的话题不再展开,详见React wiki。
笔者认为“Write once, run anywhere”对提升效率仍然是必要的,并且和“Learn once, write anywhere”也没有冲突,我们内部正在改造已有的组件库和HybridAPI,让其适配(补齐)React Native的组件,从而写一份代码可以运行在iOS和Web上,待成熟后开源出来。
规划
下图展示了业务和技术为React Native所做的改造:
图5 - 业务和技术改造
自下而上:
风险
React Native相对于Webview和Native的优势和劣势 @berg 也给出了较详细的描述,可以相互参照。
鬼道
2015.4.6
The text was updated successfully, but these errors were encountered: