RN此次的更新真的是期待已久,不只支持React新特性React Hooks还支持了LazyLoad,提高了Android端JSC的性能。性能优化
React Hooks的解决了咱们的不少问题,能够经过个人博客中使用的示例代码看到方便之处;主要是解决的不能跨组件重用业务逻辑处理和状态的问题,固然还有其余的好处,后面打算写篇文章详细介绍。架构
RN中支持这个,就不用再纠结使用Mobx仍是Redux,不用再担忧满屏散落的业务处理。async
RN使用JSC(JavaScriptCore)驱动咱们的应用程序。 在Android平台上的JSC仍是几年前的版本,这就意味着大量的现代JavaScript特性没有被支持。甚至更糟的是,相比IOS的现代JSC性能低下。在此次发布中,全部将改变。ide
新版的JSC将带来64位的支持、现代JavaScript特性支持和巨大的性能提高。后面的维护也将利用Webkit的特性提高性能而不作大量的无用工做。工具
RN自己是很想提高性能并将这些优化服务到社区。基于这个愿景,RN开源社区认为应用程序应该是按需加载资源而不是臃肿的资源减慢App的启动。这个特征被称做 "inline requires" (内联引入),它可让Metro识别要延迟加载的组件。组件架构复杂多样的应用程序将获得最大的改进。性能
在咱们默认打开它以前,咱们须要社区告诉咱们它是如何工做的。在升级到0.59后,将会是新的metro.config.js文件,修改选项为true。这里仍然有许多尝试的空间,能够参考官方性能优化该部份内容。优化
// 修改前
module.exports = {网站
transformer: { getTransformOptions: async () => ({ transform: { experimentalImportSupport: false, inlineRequires: false } }) }
}
// 修改后
module.exports = {ui
transformer: { getTransformOptions: async () => ({ transform: { experimentalImportSupport: true, inlineRequires: true } }) }
}命令行
RN但愿在未来的维护中更加高效的维护更少的核心代码,而不是把一些组件放在里面,因此官方将会把原有的部分默认组件从核心代码中分离成单独的组件,并单独维护项目。如今已经在着手了。部分默认组件已将分离。 包括 AsyncStorage、ImageStore、NetInfo、Slider等。
CLI命令行工具改进并单独分离维护
RN命令行工具长期存在问题,缺少官方支持,官方已将其已到新的代码仓库。RN CLI。官方已经作出了一些使人激动的改进。
根据谷歌官方建议官方已经清理了一些Android support,可能致使一些原有的App崩溃。须要已有项目进行升级的务必注意。该文章已同步个人我的网站 youngstream.tech