React Native Windows: react-native-windows_v0.65.0-preview.1 Release

Release date:
July 5, 2022
Previous version:
react-native-windows_v0.64.31 (released July 11, 2022)
Magnitude:
11,298 Diff Delta
Contributors:
20 total committers
Data confidence:
Commits:

227 Commits in this Release

Ordered by the degree to which they evolved the repo in this version.

Authored May 6, 2021
Authored November 28, 2020
Authored November 9, 2021
Authored August 23, 2021
Authored March 15, 2021
Authored June 7, 2021
Authored February 1, 2021
Authored March 12, 2021
Authored March 29, 2021
Authored February 22, 2021
Authored June 7, 2021
Authored March 22, 2021
Authored February 15, 2021
Authored April 19, 2021
Authored July 12, 2021
Authored February 8, 2021
Authored May 10, 2021
Authored May 24, 2021
Authored January 25, 2021
Authored December 6, 2021

Top Contributors in react-native-windows_v0.65.0-preview.1

rnbot
acoates-ms
asklar
vmoroz
JunielKatarn
jonthysell
NickGerleman
igor-klemenski-61e7
tudorms
dannyvv

Directory Browser for react-native-windows_v0.65.0-preview.1

We haven't yet finished calculating and confirming the files and directories changed in this release. Please check back soon.

Release Notes Published

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 in source
  • 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 to true 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:

<img src="https://user-images.githubusercontent.com/835219/119905046-4a286a80-bf00-11eb-89d7-7ee5a5a146f9.png" width=600>

During the preview period of 0.65 you will have to declare a dependency on [email protected] 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"
}
...