OurJS


OurJS-我们的JS, 我们的技术-IT文摘; 专注JS相关领域;
我们热爱编程, 我们热爱技术;我们是高大上, 有品味的码农;

欢迎您订阅我们的技术周刊


我们会向您分享我们精心收集整理的,最新的行业资讯,技术动态,外文翻译,热点文章;
我们使用第三方邮件列表向您推送,我们不保存您的任何个人资料,注重您的隐私,您可以随时退订,

欢迎分享您的观点,经验,技巧,心得

让我们一起找寻程序员的快乐,探索技术, 发现IT人生的乐趣;


本网站使用缓存技术每次加载仅需很小流量, 可在手机中流畅浏览;
如果您发现任何BUG,请即时告知我们: ourjs(at)ourjs.com

Facebook 正在重构 React Native,将重写大量底层


分享到
分类 技术前沿   关键字 分享   发布 ourjs  1529126866774
注意 转载须保留原文链接,译文链接,作者译者等信息。  

Facebook 五年前为 React Native 框架设计的原则,负面影响了与 JavaScript 代码的整合程度,也加大了某些特性的开发难度。因此 Facebook 现在准备对 React Native 架构进行重构,通过引入更先进的架构,来提高 JavaScript 和混合开发中原生 API 的互通性。


昨日,React 工程经理 Sophie Alpert 在其官方博客上宣布 Facebook 将要重构 React Native,使其更轻量,更具灵活性,更适应 JavaScript 生态圈的发展。

在博客中 Sophie Alpert 表示,React Native 项目的设计初衷是成为 JavaScript 和原生应用之间的桥梁。React DOM 将 React 的状态更新变成了命令式、可变的 DOM API 调用,如 document.createElement(attrs) 和 .appendChild(),而 React Native 则返回一个单独的 JSON 消息,它列出了要执行的一些操作,如 [["createView", attrs], ["manageChildren", ...]]

他们将整个系统设计为永不依赖获取同步响应,并确保该列表中所有的内容都可以完全序列化为 JSON,并且可以反序列化回来。这样做是为了提升灵活性:在这个架构之上,能够构建诸如 Chrome 调试器之类的工具,这些工具可以通过 WebSocket 连接异步运行所有的 JavaScript 代码。

但在过去的 5 年里,他们发现最初的设计原则加大了某些特性的开发难度。异步桥接(asynchronous bridge)意味着不能直接将 JavaScript 逻辑与很多原生 API 集成在一起,因为这些原生 API 是同步的。

批量桥接(本地调用队列)意味着 React Native 应用程序调用原生实现的函数会更加困难。而且串行化的桥接意味着不必要的复制,因为它不是直接在两个世界之间共享内存。对于完全使用 React Native 构建的应用程序,这些限制通常是可承受的。但对于在 React Native 与现有应用程序代码之间进行复杂集成的应用程序,情况则变得十分糟糕。

因此,Facebook 正在对 React Native 进行大规模重构,让架构变得更加灵活,并更好地与混合 JavaScript/原生应用开发中的原生基础设施集成。

通过这个项目,他们将应用在过去 5 年中学到的知识,逐步让架构更现代化。他们正在对 React Native 内部进行大量的重写,当然大部分工作都是在底层进行的,所以现有的 React Native 应用程序几乎不需要做出更改。

为了使 React Native 更轻量化并能更好地适应现有的原生应用,此次重构主要从三个方面进行:

  • 首先,改变线程模型。UI 更新不再需要在三个不同的线程上执行,而是可以在任意线程上同步调用 JavaScript 进行优先更新,同时将低优先级工作推出主线程,以便保持对 UI 的响应

  • 其次,将异步渲染功能引入 React Native 中,允许执行多个渲染并简化异步数据处理

  • 最后,简化桥接,让它更快、更轻量。原生和 JavaScript 之间的直接调用效率更高,并且可以更轻松地构建调试工具,如跨语言堆栈跟踪

完成以上工作之后,有可能带来更紧密的集成。现在,不通过复杂的 hack 手段就无法让原生导航和手势处理或原生组件(如 UICollectionView 和 RecyclerView)一起工作。但在对线程模型做出更改之后,开发者构建这样的功能将会非常简单。

Sophie Alpert 最后说到,他们的目标是希望 React Native 在 JavaScript 端能够更加轻量,以更好地适应 JavaScript 生态系统。等今年晚些时候这个项目将要完工时,Facebook 会披露更多的细节,敬请期待。

博客原文:https://facebook.github.io/react-native/blog/2018/06/14/state-of-react-native-2018

原文地址: 点此
社区评论 ( Beta版 )
OnceDoc 您自己的企业内容管理系统——文档、流程、知识库、报表、网盘All In One

访问404页面,寻找丢失儿童
 热门文章 - 分享最多
  1. 怎样将Android手机中的照片和视频,通过APP自动同步备份到OnceAir云盘的共享目录中
  2. JS动态滑动切换到页面指定位置
  3. 用CSS和Bootstrap图标制作上下跳动的指示箭头动画效果
  4. nodejs视频教程集合附带源码和笔记
  5. Debian/Ubuntu Linux搭建SVN服务器,并设置开机默认启动
  6. html5弹出式网页mp4视频播放器
  7. Office365并不是完全基于JavaScript重写的,只是用来构建UI界面
  8. AirJD-简单好用的免费建站工具

 相关阅读 - 技术前沿
  1. WordPress、百度宣布停止使用React(Native)开源项目,Facebook开源专利许可潜在的法律风险
  2. 比特币的技术缺陷:区块链信息越来越大怎么办?
  3. Phantom.js维护者Slobodin退出,著名自动化测试与智能爬虫框架前景不明
  4. Java已快过时?斯坦福大学将JavaScript作为计算机科学入门课
  5. 2016 年崛起的 JS 项目
  6. OnceVI前后端分离的数据可视化报表工具简介
  7. 关于华为优化30、40老员工的争议
  8. GitHub 第一坑:换行符自动转换
  9. NodeJS连接Redis:在(Raspberry Pi)树莓派上安装Redis并设置开机自动启动服务
  10. 传言GITHUB正在寻求第二轮融资,或面临估值下降、清算或被微软收购

 关键字 - 分享
  1. IE、Chrome、Firefox浏览器默认首页被改成360导航解决办法(删除daohang88.com)跳转
  2. 不用花钱和推广,用户就能从这些渠道进入小程序!
  3. Node初学者入门,一本全面的NodeJS教程
  4. 第三方评论平台多说即将关闭
  5. 分享7款最新HTML5/CSS3应用
  6. Facebook 正在重构 React Native,将重写大量底层
  7. 将BootstrapJS和AngularJS结合使用以及为什么不用jQuery
  8. Office365并不是完全基于JavaScript重写的,只是用来构建UI界面
  9. Debian/Ubuntu Linux搭建SVN服务器,并设置开机默认启动
  10. NodeJS初学者教程:Node.js之HTTP

 欢迎订阅 - 技术周刊

我们热爱编程, 我们热爱技术; 我们是高端, 大气, 上档次, 有品味, 时刻需要和国际接轨的码农; 欢迎您订阅我们的技术周刊; 您只需要在右上角输入您的邮箱即可; 我们注重您的隐私,您可以随时退订.
加入我们吧! 让我们一起找寻码农的快乐,探索技术, 发现IT人生的乐趣;


 关注我们

我们的微信公众号: ourjs-com
打开微信扫一扫即可关注我们:
IT文摘-程序员(码农)技术周刊

ourjs官方微信号