When you select a cross-platform development tool, it's important to look not only at the capabilities for building iOS, Android, and perhaps Windows apps, but also at what versions of each platform are supported. For example, you can't build apps for iOS 7 with React Native.
Another key factor is the age and maturity of the development tool since that can make a difference both to the capabilities of the technology and the developers who will work with it.
The Pro of Cordova: Cordova has been around considerably longer than React Native, a fact that bestows it with a number of advantages, not least of which is its domination of the cross-platform market. This, in turn, might be attributed at least partially to maturity-related advantages for users, such as:
- An extensive knowledge base
- A wide range of plugins
- Plentiful documentation covering everything from basic to advanced use of the solution
- A large base of developers experienced in the use of Cordova for app development
Cordova also supports a wide range of new platforms and is less volatile than React Native, which is currently subject to new version releases every few weeks, with no guarantee of backwards compatibility.
The Con of React Native: React Native is by no means immature, but it is some way behind Cordova in this respect. While a large and extremely helpful development community exists, RN documentation is not as extensive as that available to Cordova developers.
React Native's reliance on component libraries brings another maturity issue to the fore. Many of these libraries are still underdeveloped. We touched on this earlier when mentioning how some components are not available for all platforms, but there's also the issue of component quality, which does tend to be variable.