为跨平台应用程序引入React Native Windows

杨研
2023-12-01

Microsoft在Facebook的React的基础上,提供了用于构建Windows,Web以及其他平台的跨平台代码的工具。

微软使用TypeScript(它的开源JavaScript替代品)构建许多自己的属性并不是什么大秘密。 凭借强大的输入能力和将代码转换为纯JavaScript的编译器,它旨在在Web项目之上交付大型项目。 但是像TypeScript这样的工具只是开发故事的一部分。

[了解React? 不要错过InfoWorld的React入门教程 | 通过InfoWorld的App Dev Report新闻通讯了解编程方面的热门话题。 ]

在TypeScript之上构建应用程序需要大量工具,特别是如果您想提供本机用户体验。 虽然Electron可以很好地作为主机运行,但可以通过API调用将您的应用程序链接到Windows平台,但这仍然只是基础。 仅在Electron之上的TypeScript只会为您提供另一个控制台应用程序,缺少现代用户体验的所有熟悉元素,从窗口和控件到您自己的用户元素的画布。

您还处于跨平台的世界中,您的代码不仅需要在Windows上运行,而且还需要在Web,iOS,Android和MacOS上运行。 用户不仅期望每个平台上具有相同的应用程序,而且期望具有相同的用户体验和相同级别的功能。 他们希望将他们在iOS上学到的东西带到Windows上,并在Windows上带到Android。 控件不必在每个平台上看起来都一样,但是它们的行为方式必须相同。

从React到React Native

尽管微软拥有大量工具来弥合跨平台鸿沟,但它并不是第一家意识到需要解决此问题的公司:在Web平台上构建以交付本机代码。 Facebook的React UI框架及其React Native平台已成为流行的工具 ,因此,微软随后基于Skype,Teams,Visual Studio Code,Office 365等应用程序开发自己的跨平台基于Web的工具也就不足为奇了。现在使用您自己的代码。

React采用基于视图的方法进行UI开发。 这是一种声明性语言,它将基于JavaScript的组件组合在一起来构建您的应用程序。 组件是有状态的,并使用处理组装和显示视图的render()方法显示和更新组件。 您可以使用实现了可编程模板模型JavaScript扩展JSX构建React元素和组件。 在幕后,React实现了自己的DOM来托管渲染的组件,并根据需要重新渲染已更改的元素,而不会影响页面的其余部分。

元素就像JavaScript函数一样,将以React(在React中称为props)属性作为参数,并使用它们作为属性来显示数据或格式化组件。 定义元素后,每次在页面中使用该元素时,都会在呈现之前通过一个简单的标签式声明(带有元素名称和任何适当的道具)来调用它。 组件是元素的更复杂的组合,包装在函数中,然后在UI中使用。 最好使组件尽可能的小而简单。

微软和React:从Skype到Windows以及更多

微软已经发布了几种不同的React工具集,这些工具集可帮助构建本机跨平台代码。 首先是Skype团队的React XP ,它基于Facebook的框架,可在每个操作系统上为Skype提供一致的外观。

Skype将React XP设计为仅支持React Native的跨平台元素,最初是针对其自己的代码。 通过限制选项,它旨在将其用作构建代码的快速方法,您可以确定该代码将在所有目标平台上运行。 尽管在React中也可以通过使用精心选择的组件和道具来实现,但是使用React XP消除了您可能会意外调用不受支持的选项的风险。

React Native Windows跟在React XP之后,为通用Windows平台(UWP)应用程序添加了React支持。 这将目标环境的范围扩展到了支持UWP应用程序的任何环境,包括HoloLens上 Windows的增强现实应用程序 。 通过熟悉的NPM命令安装,它作为Node.js的React Native工具顶部的插件运行。

React Native Windows入门

使用熟悉的Web开发工具,安装快速简便。 安装完所有内容后,您需要先创建一个React Native项目,然后再将React Native Windows工具安装到项目目录中。 安装到位后,您就可以开始在Visual Studio中构建应用程序了。 React Native Windows创建样板代码和系统文件的混合。 您可以将代码添加到主页,也可以自定义处理React Native Windows模块和Windows UWP API之间的桥梁的C#代码。

一旦到位,您就可以开始使用现有的React Native组件或开始编写自己的组件,以利用Web组件公开的特定功能。 然后,相同的代码可以构成在iOS,Android和Web上运行的Reactive Native应用程序的UI层的基础。

从任何跨平台应用程序的Windows端开始都是有意义的,因为它是React Native Windows,它定义了它对元素和组件提供的功能。 随着项目添加新功能,您的TypeScript或JavaScript代码将更新。

因为它是一个开源项目,所以您甚至可以对其进行分叉以添加自己的特定功能,或者使用拉取请求将新功能提交给主线项目。 类似地,您可以通过React Native Windows支持扩展现有的React Native组件 ,通过发布更新和分支的组件或将更改提交给项目所有者,使更改对其他用户可用。

Microsoft在其GitHub存储库中保留了具有Windows支持的React组件列表 。 该列表相当全面,并且在存在Windows替代iOS或Android控件的地方,它提供了选项。 尽管Microsoft正在努力提供控件,但显然它专注于自己项目中的需求,因此它可能与您的需求不同。 您可能还需要在单个Visual Studio应用程序中使用单独的项目,才能在特定于设备的代码版本中使用Android和iOS控件。

无论您使用哪种技术,构建跨平台版本的应用程序都不是一件容易的事。 如果您只是为设备编写代码,则Xamarin和UWP的混合可能会为您提供最佳性能。 但是,如果您要添加网络,并考虑使用Electron来支持Linux和MacOS以及Windows,iOS和Android,那么React Native Windows非常值得一看。

From: https://www.infoworld.com/article/3282546/introducing-react-native-windows-for-cross-platform-apps.html

 类似资料: