专栏名称: 移动开发前线
专注于分享移动开发前沿和一线技术。
目录
相关文章推荐
前端之巅  ·  Chrome 被强制出售?谷歌或将抛弃 ... ·  2 天前  
前端大全  ·  Vue.js ... ·  3 天前  
光伏资讯  ·  光热科普!塔式光热! ·  4 天前  
光伏资讯  ·  光热科普!塔式光热! ·  4 天前  
前端之巅  ·  80人小团队,限时任务!NYPL如何用Nex ... ·  1 周前  
51好读  ›  专栏  ›  移动开发前线

微软新发布的ReactXP是什么东西,有没有前途?

移动开发前线  · 公众号  · 前端  · 2017-04-11 08:01

正文

昨天,微软在Github上发布了一个新的开源项目:ReactXP,吸引了不是前端和移动开发者的关注。

Github链接:https://github.com/microsoft/reactxp

项目官网:https://microsoft.github.io/reactxp/

从名字来看,它是基于React框架的,官网上微软称之为跨平台App开发工具库,并罗列了它的主要特性,包括:

  • 基于React.js和React Native构建。

  • XP表示支持跨平台,目前支持Web浏览器、Android、iOS,计划支持UWP,至于其它桌面平台则建议使用类似Electron这样的工具。

  • 创建响应式的,接近原生应用体验的App.

简单来说,ReactXP为React.js和React Native增加了一个中间层,让React Web应用的API与React Native兼容。

在官网的文档里,官方团队进一步解释了围观群众可能疑惑的一些问题。

ReactXP与React Native的关系

官方解释说,ReactXP构建于React Native之上,提供几乎与RN相同的Web版本API,但ReactXP并不是RN的子集或超集。

ReactXP最重要的特点是它的API的一致性,在某些情况下,平台之间的实现不同,API会在一些平台能使用,在另一些平台则是无操作(但能被调用),ReactXP尽可能的不让用户去关心平台区别。

使用ReactXP能过直接调用RN或React DOM,但这时需要根据条件判断平台来进行相应的操作。

ReactXP与React Web的异同

如果关心React发展的同学可能发现,微软的这个东西怎么似乎见过。不错,早在15年,淘宝FED就推出了一个React Web项目,使用React Native兼容的API开发Web应用。后来Twitter也推出了一个React Native for Web项目,与前者目标相似,不过在国外这个更为知名。

微软解释了ReactXP和React Native for Web的不同。ReactXP只包含能够跨平台的API和组件,它的目标之一是让开发者使用自己喜欢的环境开发应用,并且有信心让应用跑在不同的平台上而不用过多的担心兼容问题。ReactXP构建于React.js和React Native之上,目标是跨平台,而React Native for Web目标是Web平台。

但事实上微软的这个理念也并不新鲜,淘宝FED后来又在React Web的基础上弄出了Rax项目,这个项目野心更大,不但要跨平台,而且将RN、Weex、Node.js视为容器,Rax的目标还要能够跨容器,这个更厉害。

微软发布ReactXP意味着放弃Xamarin吗?

前不久微软发布Visual Studio时,将支持React Native for iOS作为其重要特性。微软也一直是React社区的重要参与者,之前提供了React Native的热更新工具CodePush,也一直将支持React开发作为重要目标,这种热心姿态几乎让人忘记微软还有自己的跨平台开发工具Xamarin.

在文档里,ReactXP与Xamarin进行了一波商业互吹,并且说两者的目的并不相同,一个给C#开发者使用,一个给前端开发者使用。

从文档看不出微软对Xamarin的态度,不过综观微软的动作,Xamarin的地位无疑是降低了。

ReactXP有前途吗?

ReactXP由Skype团队开发,想想他们需要支持的平台之多,瞬间就理解他们为什么要开发这个项目。不过,除此之外,ReactXP并未有更多的采用者。

从目前来看,ReactXP的卖点在于对Windows平台的支持,不过这一项还是In Progress,如果以后正式支持的话,开发Windows应用又多了一个可选的框架。

至于如此广泛的跨平台,目前来看有这个需求的并不多,而且ReactXP也并不是唯一答案,在这一点上吸引力不大。

ReactXP的意义

不是每一件事物都存在值得讨论的意义,不过ReactXP作为React生态里的最新一员,可以说稍稍拓展了React的边界,这就是它的意义之所在。

在之前,React的跨端,是由各种平台的Native延伸框架支持的,每多一个平台就要开发一个Native,开发者又要重新写一遍,这很不环保。ReactXP则让我们看到了大一统的可能,未来如果平台有变化,或者出现新的平台,不需要开发者动手,脏活全让框架开发者给干了,岂不是美滋滋。

当然,这个理想过于美妙,现实肯定会有各种坑,也一定会伴随着各种争论,开发者根据自己的需要,权衡利弊,选择最适合自己的工具就好。

活动推荐:

由InfoQ主办的第二届GMTC全球移动技术大会开始报名了!大会将于6月9-10日在北京举行。本届大会,我们将探讨智能时代的大前端,在动态化、React Native等逐渐流行的现在,移动和前端的融合将会发生怎样的变化?点击阅读原文进入大会官网,现在报名享8折优惠!