30
回答
OSC 第 80 期高手问答 — 使用 React Native 开发原生 App

OSCHINA 本期高手问答(6月29日- 7月5日)我们请来了 @vczero王利华)为大家解答关于 使用 React Native 开发原生 App 方面的问题。

王利华,@vczero ,携程框架研发部,无线框架高级研发工程师,主要负责携程 HTML5 框架 UI 组件开发及其性能优化、React-Native 的研究和探索、Canvas-UI 的相关研究、Node.js 相关系统研发;擅长 Node.js、JavaScript 以及前后端分离实践。2013-2015 年,在高德地图研发中心工作,负责 JavaScript API 研发和布道以及 Web App 的 Node.js 服务端研发。热爱生活,热爱开源。

React Native一 经推出,就获得众多开发者的关注。React Native 使得 JavaScript 能够开发真正的 APP, 它不仅有着与原生应用相媲美的体验,同时拥有着 web 应用的优势和开发效率。React Native 鲜明的特点就是组件化,一个应用都是多个组件构成;同时为了更高的效率,React Native 采用了内存 Dom tree Diff 计算,优化了 view 的渲染效率和体验。使用 JavaScript 开发跨终端的应用是未来的趋势。

7 月 18 日杭州源创会的第五个主题就是由@vczero 带来《使用 React Native 开发原生 App》主题演讲,杭州的朋友可以点击这里报名参加活动

高手问答一贯的风格,不欢迎任何与主题无关的讨论和喷子。

下面欢迎大家就 使用 React Native 开发原生 App 方面问题向 @vczero(王利华)提问,请直接回帖提问。

举报
叶秀兰
发帖于2年前 30回/8K+阅
共有30个答案 最后回答: 2年前

@vczero : 哈哈终于等到react的专题了,我先问个问题:

对于跨平台应用来说,react是否可以替代目前的开发框架,要实现真正意义上的统一,还有哪些关键点需要解决?

--- 共有 1 条评论 ---
vczero因为字数限制,已经在引用评论中回答了 2年前 回复
想知道,这个与phonegap的比较,包括开发效率,学习曲线,用户体验,工具的完善程度等
--- 共有 5 条评论 ---
vczerophonegap和react-native还是不同。react-native内部在iOS7版本以上采用的是js core engine解析的,在版本上是降级使用webview.React-Native针对前端开发者上手难度应该不是很大,主要熟悉flexbox布局、jsx语法、react-native api。 2年前 回复
vczero回复 @jeffsui : 所有原生应用功能都是可以通过phonegap扩展调用的。 2年前 回复
vczero回复 @海诺者 : React-Native目前主推的是iOS,后面我们一同期待android吧 2年前 回复
海诺者我所知道的是react现在的学习资料百度谷歌能够搜到的都是iOS的,有许多资料顺便提了下Android没有像iOS那么仔细 2年前 回复
jeffsuiphonegap能开发原生应用吗? 2年前 回复
@vczero :您好。我想问一下,目前使用React-Native有那些局限,React-Native更适合开发那些应用?
--- 共有 1 条评论 ---
vczeroReact-Native还是有些坑需要踩的,现在github上也能看到Recat-Native源码库都有不少开发者在提bug,更新的也很快。目前React-Native做一些内部app还是可以的;目前对动画的支持不是很高,这个可以在一些app中做一些优雅降级;更适合开发那些动画效果要求不是忒高、组件功能要求相对较少(如果团队中有oc的开发者可以忽略)的app。很多坑,我们团队现在都在踩。 2年前 回复
@vczero :React-Native实现的应用能否实现增量更新?如果能,苹果商店会限制此类应用吗?
--- 共有 1 条评论 ---
vczero可以实现增量更新;大家都知道天猫已经上了一个活动页,至少目前来看,apple是不会限制的。相信大公司应该有大公司的胸怀。 2年前 回复

@vczero :React-Native是在React的基础上设计的(也许描述的不对),对于前端来说,纯业务组建(不涉及ui,仅仅是逻辑)能否在ios,android,web上共享?

--- 共有 3 条评论 ---
vczero回复 @玛雅牛 : 目前我们框架团队正在努力做这件事。希望打通react-native和react. 2年前 回复
vczero你说的很对,react-native是react基础上设计的,这是当时facebook两个团队做的事情,reactjs先出来的。如果是语法层面,不设计UI,是可以共享的。android的话,我们一起期待吧。 2年前 回复
玛雅牛从官方的视频看到,React Native提倡的是 Learn once, write anywhere,这不是是预示着多个平台还得每个写一遍,不知道共享度能有多少? 2年前 回复
@vczero :组件的属性和方法够多够灵活吗?
--- 共有 4 条评论 ---
榕树下_@vczero 谢谢,不过因为忙英文看起来还是费劲些,等有中文教程了学学 2年前 回复
vczero回复 @郑州楚天科技 : 这里有个入门教程可以看一下:https://github.com/vczero/react-native-lession 2年前 回复
榕树下_@vczero 哦,目前国内还没有系统和教程,等有了系统的教程我也学习一下,可以先试用试用,毕竟是新出来的。 2年前 回复
vczero目前React-Native的第三方库还不是很丰富,需要oc的支持和暴露,当然这只是目前。组件的方法不是很多,但是很好的处理了一个UI组件的渲染生命周期,足以控制组件;组件可以自定义和扩展,所以属性是可以灵活使用。具体的可以关注3个比较重要的属性:props、state、ref. 2年前 回复
@vczero :React-Native和 react 的代码可以复用吗
--- 共有 2 条评论 ---
云卷江南回复 @vczero : 谢谢。我在avalon和react之间纠结,是想如果能够复用,就采用react,我们pc端用的avalon。改框架需要说服力。比较avalon也是我自己推的。谢谢! 2年前 回复
vczero目前我们团队也在做这件事,想要完全的复用还是很难的。需要做就是将一个方向大通,比如react转native。那么就会遇到如需要将div、img等封装成react-native的View、Image组件;同时css样式的改变和css-layout的打通也是比较耗时的工作。后期,我会在大会上分享我们团队正在做的这件事。 2年前 回复
@vczero : 最近由于工作原因也开始关注类似的终端开发,最开始了解的是sencha touch,能不能做一下两者的对比?
--- 共有 3 条评论 ---
vczero@撕裂噩梦 客气啦~0 2年前 回复
撕裂噩梦回复 @vczero : 好的,谢谢了,看来我对React-Native的理解有错误 2年前 回复
vczero这个可比性不大呀。sencha touch就像jquery mobile一样的框架支持h5,可以配合phonegap一起使用;react-native可以是开发原生的app,是在native层面。 2年前 回复
@vczero :请问React-Native的目前推广和应用局限性有哪些?谢谢~
--- 共有 3 条评论 ---
weihongsheng@vczero 嗯,好的 谢谢 2年前 回复
vczero如果团队中有object-c成员,相对而言,上手就会轻松很多 2年前 回复
vczeroReact-Native技术的推广可以从公司内存app试水;边踩坑边开发,React-Native的局限性除了平台因素,就是对开发者要求较高。当然开发效率来说,应该是很快的。 2年前 回复

引用来自“jeffsui”的评论

@vczero : 哈哈终于等到react的专题了,我先问个问题:

对于跨平台应用来说,react是否可以替代目前的开发框架,要实现真正意义上的统一,还有哪些关键点需要解决?

这个统一谈不上了,至少react-native还不支持android,因为倒不是android的支持是件多么难的事儿,主要是因为android平台的不统一,定制成分较高,引擎的性能参差不齐。跨平台而言,更多强调的是js能够编写跨平台应用,体验也能够和原生相媲美。关键React-Native的发展还需要facebook团队在android上的发力,同时也需要更多的同仁将oc的接口和功能暴露处理,以弥补一些不足。
顶部