We're excited to release React Native Windows 0.65.0. There have been more new features, bugfixes, and enhancements than we can count, with some of the significant ones listed below.
Getting Started documentation
React Native 0.65 announcement
How to upgrade
You can now view the differences between different versions of C++ applications using a special version of React Native Upgrade Helper.
Upgrade helper does not yet support C# projects or projects using experimental features. It is recommended to generate a new project using react-native-windows-init
for projects not supported by Upgrade Helper.
What's New
-
Hermes debugging and profiling: You can now debug and profile the heap-usage of your JavaScript code running on Hermes. See this document for details.
-
New component capabilities: We've added Windows support for some existing, and some all new properties, including:
<Button>
:tabIndex
<Pressable>
:onKeyDown
/onKeyUp
<TextInput>
:autoFocus
,clearTextOnSubmit
,submitKeyEvents
<Image>
: SVG data URI insource
-
TraceLogging based ETW events: We now expose the ability to record ETW events for various framework actions. See Event Tracing in React Native for Windows for details.
-
Hermes 0.8.0 with improved garbage collector: Hermes 0.8.0 introduces The Hades Garbage Collector, which dramatically reduces GC pause times.
-
More consistent styling for <Button>: The stock
<Button>
component has been updated with a look-and-feel consistent with other Windows controls. -
WinUI 2.6: We upgraded from WinUI 2.3 to WinUI 2.6, offering more refined native controls.
-
Hermes support for C# applications: You can now create a C# application that uses Hermes. See how to use Hermes here.
-
FlatList performance improvements: Several performance issues causing excessive renders when using FlatList have been fixed.
-
Opt-in fast builds: Set the
RNW_FASTBUILD
environment variable totrue
to enables building with larger PCH's. This leads to a much faster build, at the expense of higher system requirements to build successfully. -
IViewManagerCreateWithProperties: View managers may implement
IViewManagerCreateWithProperties
to receive properties at the time of view creation, simplifying cases where different properties may lead to different native views. -
Bug-fixes and improvements: The above just scratches the surface of the work that has been happening! We've been continually making bug fixes and improvements across the project.
Breaking Changes
-
Legacy WebSocket implementation: We introduced a new WebSocket stack in 0.64, along with the
QuirkSettings::SetUseLegacyWebSocketModule
function to opt-out of it. This setting is now removed, and the new implementation is always used. -
32-bit ARM support: We removed support for 32-bit ARM processors, which are used on some Windows IoT Core devices.
-
WinUI 3 Islands: React Native Windows now targets WinUI 3 preview 4 when set to use WinUI 3. This requires changes for applications using WinUI 3 with XAML Islands.