热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ReactNative0.59新特性

|作者:RyanTurner|公众号链接:mp.weixin.qq.comsZ1SKqej4M…|链接:facebook.github.i

| 作者:Ryan Turner

| 公众号链接:mp.weixin.qq.com/s/Z1SKqej4M…

| 链接:facebook.github.io/react-nativ…

Facebook 于本月 12 号发布了 React Native v0.59。这次更新来自 88 个贡献者的 644 次提交。让我们一起来看看这个版本有什么新特性。以下是官方通稿的译文。

? Hooks

React Hooks 是此版本的一部分,它允许跨组件重用有状态逻辑。下面这些资源介绍了 hook 相关的信息,可以参考一下:

  • 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。

可以在应用中试一试,看看会不会让你感到兴奋。

? 更新的 JSC,以在 Android 上提升性能和支持 64-bit

React Native 使用 JSC(JavascriptCore)为应用程序提供支持。Android 上的 JSC 已经存在了几年,这意味着很多现代 Javascript 功能都不受支持。更糟糕的是,与 iOS 的现代 JSC 相比,它表现不佳。随着这个版本的发布,这一切将改变。

在 @DanielZlotin,@ dulmandakh,@ gengjiawen,@kmagiera 和 @kudo 等大神的努力下,Android 的 JSC 已有很大改进,还来了 64 位支持,同时性能也大幅改进。

? 更快的应用程序启动与内联需求

我们希望帮助开发者拥有高性能的 React Native 应用程序,并努力将 Facebook 的优化带入社区。应用程序根据需要加载资源,而不是减慢启动速度。此功能称为“内联需求”(inline requires),因为它允许 Metro 识别延迟加载的组件。具有深入和多样化组件架构的应用程序将获得最大的改进。

当升级到 0.59 时,会有一个新的 metro.config.js 文件;将选项设置为 true 并向我们提供反馈!更多信息可以参考文档 Performance 一章。

? 进行中的精简核心库(Lean core)

React Native 是一个庞大而复杂的项目,具有复杂的 repository。这使得代码库对于贡献者来说并不亲民,难以测试,并且作为开发依赖库来说太大。精简核心库是我们所做的一些努力,通过将代码迁移到单独的库以更好地管理来解决这些问题。过去的几个版本已经看到了这个措施的第一步。

您可能会注意到额外组件现已正式弃用。这是一个好消息,因为现在由这些功能的所有者来积极维护它们。注意警告消息并迁移到新库以获取这些功能,因为它们将在以后的版本中删除。下面的表格显示了组件,其状态以及迁移到的新位置。

在接下来的几个月里,将会有更多的组件被精简。

??‍? CLI改进

React Native 的命令行工具是开发人员进入生态系统的入口点,但它们长期存在问题并且缺乏官方支持。CLI 工具已移至新的 repository,一组专门的维护人员已经做了一些令人兴奋的改进。

现在,日志格式化显得更加友好。命令现在几乎是立即运行 - 可以注意到一些区别:

? 升级到0.59

要升级到 0.59,我们建议使用 rn-diff-purge 确定当前 React Native 版本到 0.59 之间的更改,然后手动更新这些更改。将项目升级到 0.59 后,您将能够使用新改进的 react-native upgrade 升级命令(基于rn-diff-purge!)升级到后续的 0.60 及更高版本,因为新版本将支持这一特性。

? 破坏性更新

根据谷歌的最新建议,已经梳理了 0.59 中的 Android 支持,这可能会破坏现有应用程序。此问题可能表现为运行时崩溃和消息,"You need to use a Theme.AppCompat theme (or descendant) with this activity"。我们建议更新项目的 AndroidManifest.xml 文件,确保 android:theme 值是 AppCompat 主题(例如 @style / Theme.AppCompat.Light.NoActionBar)。

react-native-git-upgrade 命令已在 0.59 中删除,支持新改进的 react-native upgrade 命令。

? 小结

据官方声明,0.59 是一个重大的发布,同时在今年剩下的时间里,还会有更多的改进。更多的信息可以查看官方文档。

看来 Facebook 这次是来真的了。

关注我们

欢迎关注我们的公众号:zsxjtip,也欢迎加入我们的群组讨论问题。可以加微信 coldlight_hh/wsy9871 进入我们的 iOS/flutter 微信群。


转:https://juejin.im/post/5c8b2ce6e51d45790a4592ce



推荐阅读
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
  • 深入解析Android 4.4中的Fence机制及其应用
    在Android 4.4中,Fence机制是处理缓冲区交换和同步问题的关键技术。该机制广泛应用于生产者-消费者模式中,确保了不同组件之间高效、安全的数据传输。通过深入解析Fence机制的工作原理和应用场景,本文探讨了其在系统性能优化和资源管理中的重要作用。 ... [详细]
  • 在Cisco IOS XR系统中,存在提供服务的服务器和使用这些服务的客户端。本文深入探讨了进程与线程状态转换机制,分析了其在系统性能优化中的关键作用,并提出了改进措施,以提高系统的响应速度和资源利用率。通过详细研究状态转换的各个环节,本文为开发人员和系统管理员提供了实用的指导,旨在提升整体系统效率和稳定性。 ... [详细]
  • 本指南介绍了如何在ASP.NET Web应用程序中利用C#和JavaScript实现基于指纹识别的登录系统。通过集成指纹识别技术,用户无需输入传统的登录ID即可完成身份验证,从而提升用户体验和安全性。我们将详细探讨如何配置和部署这一功能,确保系统的稳定性和可靠性。 ... [详细]
  • 如何撰写适应变化的高效代码:策略与实践
    编写高质量且适应变化的代码是每位程序员的追求。优质代码的关键在于其可维护性和可扩展性。本文将从面向对象编程的角度出发,探讨实现这一目标的具体策略与实践方法,帮助开发者提升代码效率和灵活性。 ... [详细]
  • 第六章:枚举类型与switch结构的应用分析
    第六章深入探讨了枚举类型与 `switch` 结构在编程中的应用。枚举类型(`enum`)是一种将一组相关常量组织在一起的数据类型,广泛存在于多种编程语言中。例如,在 Cocoa 框架中,处理文本对齐时常用 `NSTextAlignment` 枚举来表示不同的对齐方式。通过结合 `switch` 结构,可以更清晰、高效地实现基于枚举值的逻辑分支,提高代码的可读性和维护性。 ... [详细]
  • 深入解析:Synchronized 关键字在 Java 中对 int 和 Integer 对象的作用与影响
    深入探讨了 `Synchronized` 关键字在 Java 中对 `int` 和 `Integer` 对象的影响。尽管初看此题似乎简单,但其实质在于理解对象的概念。根据《Java编程思想》第二章的观点,一切皆为对象。本文详细分析了 `Synchronized` 关键字在不同数据类型上的作用机制,特别是对基本数据类型 `int` 和包装类 `Integer` 的区别处理,帮助读者深入理解 Java 中的同步机制及其在多线程环境中的应用。 ... [详细]
  • 深入解析 Synchronized 锁的升级机制及其在并发编程中的应用
    深入解析 Synchronized 锁的升级机制及其在并发编程中的应用 ... [详细]
  • 在处理大规模数据数组时,优化分页组件对于提高页面加载速度和用户体验至关重要。本文探讨了如何通过高效的分页策略,减少数据渲染的负担,提升应用性能。具体方法包括懒加载、虚拟滚动和数据预取等技术,这些技术能够显著降低内存占用和提升响应速度。通过实际案例分析,展示了这些优化措施的有效性和可行性。 ... [详细]
  • Android 构建基础流程详解
    Android 构建基础流程详解 ... [详细]
  • 本文介绍了一种自定义的Android圆形进度条视图,支持在进度条上显示数字,并在圆心位置展示文字内容。通过自定义绘图和组件组合的方式实现,详细展示了自定义View的开发流程和关键技术点。示例代码和效果展示将在文章末尾提供。 ... [详细]
  • MSP430F5438 ADC12模块应用与学习心得
    在最近的实践中,我深入研究了MSP430F5438的ADC12模块。尽管该模块的功能相对简单,但通过实际操作,我对MSP430F5438A和MSP430F5438之间的差异有了更深刻的理解。本文将分享这些学习心得,并探讨如何更好地利用ADC12模块进行数据采集和处理。 ... [详细]
  • NFT市场热度持续攀升,波卡能否抓住机遇迎来NFT夏季热潮?
    NFT市场热度持续攀升,波卡能否抓住机遇迎来NFT夏季热潮? ... [详细]
  • 深入解析CAS机制:全面替代传统锁的底层原理与应用
    本文深入探讨了CAS(Compare-and-Swap)机制,分析了其作为传统锁的替代方案在并发控制中的优势与原理。CAS通过原子操作确保数据的一致性,避免了传统锁带来的性能瓶颈和死锁问题。文章详细解析了CAS的工作机制,并结合实际应用场景,展示了其在高并发环境下的高效性和可靠性。 ... [详细]
  • C++ 异步编程中获取线程执行结果的方法与技巧及其在前端开发中的应用探讨
    本文探讨了C++异步编程中获取线程执行结果的方法与技巧,并深入分析了这些技术在前端开发中的应用。通过对比不同的异步编程模型,本文详细介绍了如何高效地处理多线程任务,确保程序的稳定性和性能。同时,文章还结合实际案例,展示了这些方法在前端异步编程中的具体实现和优化策略。 ... [详细]
author-avatar
123123
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有