The cons:
- an extra layer of abstraction
- need to write a plugin if you want to surface a native functionality to RN if it's not yet supported
- no visual UI editor like in native tools (Qt/VS), although you generally won't need it with React Native's code-first and instant refresh development workflow
- you need to be comfortable with React Native / JavaScript, obviously :-)
> The "current" subdirectory adds support for an earlier React Native for Windows10 implemented from scratch in C#. It reimplemented the JS<->Native bridge in C#, and shared the JS with Facebook's implementation of React Native. The ongoing direction of React Native involves a closer interaction between C++ and JS which is hard to achieve with a separate C# implementation.
Given that they say that the "old" version "shared the JS" in past tense, that seems to hint that the "new" version will not share the JS? In that case, what is left of React? It sounds like it will be the same style of API and workflow, but different widgets and no cross-platform compatibility.
Source: https://github.com/Microsoft/react-native-windows/blob/maste...
While Qt emulates something like WinForms quite well, I don't think it emulates WPF widgets at all, which I speculate this wraps.
Given that WPF is the primary GUI toolkit on Windows, the only reason to accept Qt, is if you're making something like a WinForms application that you need to run on all platforms.
Sounds like it will bring React apps a lot closer to their Windows underpinnings:
> Sometimes an app needs access to a platform API that React Native doesn't have a corresponding module for yet. Maybe you want to reuse some existing .NET code without having to reimplement it in JavaScript, or write some high performance, multi-threaded code for image processing, a database, or any number of advanced extensions.
> React Native was designed such that it is possible for you to write real native code and have access to the full power of the platform. This is a more advanced feature and we don't expect it to be part of the usual development process, however it is essential that it exists. If React Native doesn't support a native feature that you need, you should be able to build it yourself.
Source: https://github.com/microsoft/react-native-windows/blob/maste...