您好,欢迎来到12图资源库!分享精神,快乐你我!我们只是素材的搬运工!!
  • 首 页
  • 当前位置:首页 > 开发 > WEB开发 >
    Facebook 正在重构 React Native,将重写少量底层
    时间:2018-06-17 08:22 来源:网络整理 作者:网络 浏览:收藏 挑错 推荐 打印

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

    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,并且可以反序列化回来。这样做是为了提升灵敏性:在这个架构之上,可以构建诸如 的工具,这些工具可以经过 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

    【编辑引荐】

    融合了 JavaScript 之力的 Nashorn 或被 JDK 11 弃用

    微软推出 AI 开发收费电子书,手把手教你构建智能聊天机器人

    借开发者“撬动”用户,才是微软重金收买GitHub的背后逻辑

    Facebook 开源其调试平台 Sonar,支持 Android 与 iOS

    苹果不允许开发者搜集和分享联络人数据

    (责任编辑:admin)