We're excited to release our first preview build of react-native-windows
0.65! There have been many changes to both react-native-windows
and react-native
itself and we would love your feedback on anything that doesn't work as expected.
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.5: We upgraded from WinUI 2.3 to WinUI 2.5, offering more refined native controls.
-
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.
How to upgrade
We've made it easier to upgrade to newer versions of react-native-windows
!
While we are working to bring Windows support to React Native Upgrade Helper, you can see a diff explaining how to update your project using https://github.com/acoates-ms/rnw-diff. The below example shows the comparison between 0.63.0
and 0.64.0-preview.1
:
During the preview period of 0.65 you will have to declare a dependency on react-native@0.0.0-7e05480cc
in your package.json
file. When we release, this version will be replaced with react-native@^0.65
.
...
"dependencies": {
"react-native": "0.0.0-7e05480cc"
}
...