这篇文章是在 React Native 发布以前写的, 已通过时了.
若是想了解推荐下面几个连接:react
以及下方评论给的极客学院的中文版介绍:git
不知道上下文的同窗能够扫一眼 CSDN 上的介绍:
http://www.csdn.net/article/2015-01-29/2823762-facebook-announces-reac...github
React Conf 的视频在这里:
http://react-china.org/t/guan-yu-react-native-xian-zai-de-xin-xi/241编程
原文是 Hacker News 上的帖子, 我作了很粗糙的翻译, 其中内容对视频作一些补充:
https://news.ycombinator.com/item?id=8964935react-native
明天次日的大会当中发布具体的信息之间, 这篇翻译的内容也许有不许, 请参考英文跟进浏览器
我是 Jordan 我在 React 团队(也是 React Native 团队). 这个线索已经有一些很棒的问题和见解了.
React Native 围绕着生产力(固然还有可以使用 React 这套放弃)提供了大量的方便,
不过由于有不少关于性能的问题, 我想我仍是分享一些我我的关于它的见解.多线程
React Native 和其余的方案区别很大, 因为:工具
咱们并非但愿给你一个神奇的戏法能让在你不改变任何的开发哲学/习惯的状况下就能自动生成出很棒的移动应用体验.
若是你在作移动开发, 你想要很棒的用户体验. 你必需是要关心性能, 必须关心怎么编写精细的交互.
任何优秀的移动端体验后面, 都须要很专心的人. 不要相信别的说法.
不过, 我感到相比而言要达到那样有些的效果, React Native 要求开发开发者作的工做, 比其余我见过的备选方案要作的工做要少得多.布局
React Native 彻底不用 DOM. React 本来用来解决浏览器开发中出现的, 不可预测的编程实践当中常见的性能问题,
可是也仅仅能帮你作那么多而已.
React Native 提高了一个层次, 不止于浏览器所能作的.
React Native 展现的 ReactJS 老是更多地偏向于 "zero DOM" 而不是 "virtual DOM"(跟你们觉得的相反).性能
React Native 也很特别, 由于咱们想要继承一些 Web 开发当中好的地方.
这是由于咱们只是想要性能, 想要 Native View 的资源的控制能力, 而不是要抛弃 Web 开发优秀的内容.
在 React Native 当中, 你但是使用 CSS Flexbox 对 Native View 进行布局,
同时有不少很熟悉的样式属性, 可是不会有泛滥的 CSS style reflow.
事件系统也跟如今 React 应用当中的一致, 由于类库的代码是同样的.
按照 Web 开发中让咱们高效开发的样式/布局的子集来构建应用,
那样开发者就能在当下就构建优秀的 Web 应用, 而不是把时间排到将来.
我认为真的, 相比鼓励开发者抛弃任何哪怕有点像 Web 技术的东西而后学一门彻底不一样的工具链(甚至两门三门), 这样要好得多.
React Native 特殊的地方还在于它能够用 JavaScript 来写高质量的应用.
在浏览器当中, 你极可能要对付一些低层级的限制, 而后你没有办法.
或者是不能访问平台上的控件(在 scroll view 当中包含 physics/Maps),
或者是你在实现当中老是被图片解码干扰, 没什么办法.
用 React Native 的话, 你能够有一些办法了.
你能够在 ReactJS 应用当中使用那些永远不会用 JS 来实现的 view(好比地图),
并且你的构建当中能够用一些更高的执行粒度的 block,
(多线程解码的 <Image />
)(不使用 DOM 的 <View >
block) 结果是这带来了质量方面到了空前的层次的感受, 并且对应平台的特征.