专栏名称: xiangzhihong
前端跨平台工程师、客户端工程师
目录
相关文章推荐
百晓讲新闻  ·  怎样才能“睡个好觉”?超详细睡眠健康指南来了→ ·  16 小时前  
新广网  ·  管理体重,红河州“行动”了! ·  16 小时前  
字体设计  ·  字体排版是设计的生命线 ·  3 天前  
重庆之声  ·  守护健康 | ... ·  2 天前  
ZaomeDesign  ·  清水混凝土口味的咖啡厅 ·  2 天前  
51好读  ›  专栏  ›  xiangzhihong

React Native 0.59.x新特性解读

xiangzhihong  · 掘金  ·  · 2019-04-17 03:43

正文

阅读 32

React Native 0.59.x新特性解读

概述

众所周知,在现在的前端技术开发栈中,跨平台开发是一个重要的课题,不管是老牌的Hybird还是最近流行的RN、Weex还是Flutter,不得不说,现在前端和客户端的界限越来越模糊。

最近在写《React Native跨平台开发进阶》一书,也是对之前的《React Native移动跨平台开发实战》的升级(ps,由于之前的写作功底较浅,所以写的并不是很好)。最近,RN发布了 0.59.x 系列版本,可以发现上层设计出现了比较大的调整,经过体验之后,就想聊聊RN新版本的升级体验和新特性。

相信从事移动开发的同学都清楚,最近两三年来,跨平台开发的技术可以说是越来越盛行,前端和客户端的界限也越来越模糊。我对RN的认识是2016年携程的一次技术分享,当时只是觉得使用js来写客户端很快,虽然当时的性能并不是很好,抱着拥抱新技术的态度,我在跨平台的方向上也越走越远、越走越深。

曾经,Aribnb 的 “ 为什么 Airbnb 放弃了 React Native ” 让我一度怀疑RN是不是要凉凉了,不过好在Facebook 并没有放弃 RN,甚至官宣 《Facebook 正在重构 React Native,将重写大量底层》 ,虽然重构后的RN还没有对外发布,但是可以遇见,重构后的RN将变得越来越好。

最近,Facebook更新了最新版本0.59.4,新版本主要更新了以下新特性: 1、减轻了 React-Native 自身框架,将 webView 、viewPager、netinfo、async-storage 等内置包拆分,通过社区独立维护,并逐步模糊 React 和 React-Native 的界限。 2、更新 JavaScriptCore 、upgrade 和 CLI 工具。 3、支持 React Hooks 。 4、修复了 FlatList 等列表控件中的诸多问题。

按照这一趋势,未来React Native还将在以下方便加大力度: 1、减轻 JSBridge 的依赖。 2、通过 Fabric UI架构,将 Shadow 层、 UIManager 、NativeModule 从 Java 移到 C++ 中,从而支持 双向的同步和异步渲染与调用 。

关于这方面的精简的知识,大家可以参考京东的 《庖丁解牛!深入剖析 React Native 下一代架构重构》 和携程的 《携程开源RN开发框架CRN》

新特性

在0.59.0版本发布以来,RN最近都在经历小版本的迭代,最近的版本为0.59.4。在0.59.x版本中主要有一些新的功能和特性:

React Hooks

React Hooks 是此版本的一部分,它允许跨组件重用有状态逻辑。Hooks的内容可以参考下面的内容: Introducing Hooks :解释了为什么在 React 添加 Hook。 Hooks at a Glance :对内置 Hooks 的快速预览。 Building Your Own Hooks :演示了使用自定义 Hooks 重用代码。 [**]Making Sense of React Hooks](medium.com/@dan_abramo…):探索了 Hooks 解锁的新可能性。 useHooks.com :展示社区维护的 Hooks 清单和 demo。

JavaScriptCore

React Native 使用新的 JSC(JavaScriptCore)为应用程序提供支持。众所周知,Android 上的 JSC 已经存在了几年,这意味着很多现代 JavaScript 功能都不受支持。更糟糕的是,与 iOS 的现代 JSC 相比,它表现不佳。随着这个版本的发布,Android的JSC将带来革命性的改变。 并且在 @DanielZlotin,@ dulmandakh,@ gengjiawen,@kmagiera 和 @kudo 等大神的努力下,Android 的 JSC 还将支持 64 位芯片,同时性能也大幅改进。

更快的启动与内联需求

新版本带来了更高的性能,因此应用的启动速度更快,这是因为新版本允许开发者根据需要加载资源。此功能称为“内联需求”(inline requires),因为它允许 Metro 识别延迟加载的组件。并且具有深入和多样化组件架构的应用程序将获得最大的改进。

在这里插入图片描述







请到「今天看啥」查看全文