在Github的Microsoft项目中发现一个名为ReactXP的项目,这是一个由Skype团队开发的,用于进行Web及跨平台APP开发的库(建立在React Js 和 ReactNative之上)。看了下国内还没介绍,特将其官网的介绍博文翻译过来,https://microsoft.github.io/reactxp/blog/2017/04/06/introducing-reactxp.html

从VS Code, .Net Core, TypeScript, PowerShell, ReactXP 等一系列的优秀开源项目来看,自从Nadella主政提出“移动优先、云优先”的战略后,微软正积极拥抱开源社区。
虽然,曾经在移动战略上失利,但现在微软正焕发着新的活力。 ——吴盐以兑 译注

我们微软Skype团队很高兴地宣布,现在开源了ReactXP,我们开发这个库目的是将其用于跨平台的开发。它基于React JS和React Native,允许您使用单个代码库来创建Web和Native的应用。

ReactXP的历史

Skype运行在许多平台上,包括台式机,笔记本电脑,手机,平板电脑,浏览器,甚至电视和汽车。历史上,每个Skype客户端的UI都是从零开始以每个平台的“Native”语言来编写的(iOS上使用Objective C,Android上使用Java,Web上使用HTML和JavaScript等)。大约一年前,我们着手努力重塑Skype。我们决定,我们需要采取新的方法来进行客户端开发 - 这将使我们的工程效率和敏捷性最大化。我们想过在不同的代码库中多次实现新的功能,我们也想尽量减少重复工作。我们探索了一些可能的选项,像Cordova(PhoneGap)这样的Web封装方案没有能达到我们希望的性能或原生体验( “native feel”);Xamarin是跨平台移动开发的绝佳解决方案,但可惜不能用于Web版本。我们最终决定在React JS和React Native之上建立我们的新客户端。为了统一React JS和React Native实现中的行为和接口,我们开发了ReactXP。 (最初将其称为ReactX,因此在来源中提及此术语。)

Skype团队还对React Native代码库做出了许多贡献,修复错误,提高性能,并消除React JS和React Native之间的行为差异。最大的贡献是React Native布局引擎的重大改造。原始实施方式松散地遵循W3C flexbox标准,但与某些重要方面的标准不同。现在更新的布局引擎能可靠地生成与所有兼容的Web浏览器相同的布局。

ReactXP设计理念

ReactXP被设计为一个在React和React Native之上的一个轻量级跨平台抽象层。它实现了十几个可用于构建更复杂组件的基础组件。它还实现了一个被大多数应用程序所需的API命名空间集。

ReactXP目前支持以下平台:Web(React JS),iOS(React Native),Android(React Native)和Windows UWP(React Native)。 Windows UWP仍然是一项正在进行的工作,一些组件和API尚未完成。

ReactXP 核心(“core”)仅包含通用功能。更加特定的跨平台功能用ReactXP扩展的形式提供。 Skype团队开发了大约二十个这样的扩展,我们计划逐步来开源其中一些。扩展的形式会允许我们扩展ReactXP,而不增加其占用空间或复杂性。

当我们决定在ReactXP中公开哪些属性(props)和样式(style attributes)时,我们尽力坚持能在所有支持的平台上统一实施的方式。例如,我们不会公开任何不兼容React Native的HTML特定属性或特定CSS样式。在一些特殊情况下,我们公开某一平台特定属性或样式时,会将在文档中标记为在其他平台上的“非通用”(“no ops”),但这只是在我们找不到变通的解决办法时才会如此。

ReactXP的未来

Skype团队将继续维护和构建ReactXP,微软的其他团队也开始使用它并作出贡献。今天我们开放给更广泛的开源社区。希望其他人会觉得有用,欢迎反馈和贡献。

我们计划每月新增一个ReactXP版本,与React Native版本大致对齐。

去代码库Microsoft/reactxp看看。

[本文首发于知乎 ]

译:Microsoft/ReactXP 简介的更多相关文章

  1. dig命令(转载)

    dig命令使用大全(linux上域名查询) 可以这样说,翻译本篇文档的过程就是我重新学习DNS的过程,dig命令可以帮助我们学习DNS的原理,配置,以及其查询过程.以前使用dig仅仅是查询一下A记录或 ...

  2. .net学习网站汇总

    http://chs.gotdotnet.com/quickstart/简介:本站点是微软.NET技术的快速入门网站,我们不必再安装.NET Framework中的快速入门示例程序,直接在网上查看此示 ...

  3. Office 365 开发概览系列文章和教程

    Office 365 开发概览系列文章和教程 原文于2017年2月26日首发于LinkedIn,请参考链接 引子 之前我在Office 365技术社群(O萌)中跟大家提到,3月初适逢Visual St ...

  4. [dig]使用dig查看当前网络连通情况

    1. dig domain, 通过server可以查到该域名被哪个server给解析了 2. dig @dns domain 不走/etc/resolve.conf,直接走指定的dns ------- ...

  5. dig命令使用大全

    https://www.cnblogs.com/daxian2012/archive/2013/01/10/2854126.html 译者序:可以这样说,翻译本篇文档的过程就是我重新学习DNS的过程, ...

  6. 项目总结(二)->一些常用的工具浅谈

    程序员是否应该沉迷于一个编程的世界,为了磨砺自己的编程技能而两耳不闻窗外事,一心只为写代码:还是说要做到各有涉猎,全而不精.关于这点每个人心中都有一套自己的工作体系和方法体系. 我一直认为,程序员你首 ...

  7. Dig HOWTO 中文手册--dig命令使用大全

    Dig HOWTO 中文手册--dig命令使用大全 DNS -- 本人翻译的dig howto手册. 译者序: 可以这样说,翻译本篇文档的过程就是我重新学习DNS的过程,dig命令可以帮助我们学习DN ...

  8. 【转载】解决繁体、日文游戏乱码的五种方法 转载自:http://tieba.baidu.com/p/488627981

    方法1:转换区域 开始——设置——控制面板——区域和语言选项——分别选择“高级”和“区域选项”标签——在其下拉框中都选择“日语”(或“日本”)(选项有点多,慢慢找)——重启后即可生效. *某影注:日语 ...

  9. React Native 三端同构

    React Native 三端同构 https://www.ibm.com/developerworks/cn/web/wa-universal-react-native/index.html rea ...

随机推荐

  1. function方法控制是否隐藏部分内容

    $(document).ready(function() { $('input[type=radio][name=IE]').change(function() { if (this.value == ...

  2. 如何使用eclipse搭建maven环境以及常见的错误

    这篇博客适合零基础学习maven,搭建maven以及运行项目,常见的错误,我会在结尾写出说明白,看是否和大家的错误一样,或者文章的括号注释部分也会写出一些注意点. 第一步:就是下载maven,以及配置 ...

  3. 配置Maven从私服下载构件

    --------------------siwuxie095                                     配置 Maven 从私服下载构件         从 Nexus ...

  4. CentOS 7安装zabbix步骤

    Zabbix配置安装 1.前期准备: 我自己的基础环境:CentOS 7 + Mysql 5.6 可以根据官网介绍一步一步安装,官网地址:https://www.zabbix.com/ 图1: 然后点 ...

  5. OpenSSL编程

    简介 OpenSSL是一个功能丰富且自包含的开源安全工具箱.它提供的主要功能有:SSL协议实现(包括SSLv2.SSLv3和TLSv1).大量软算法(对称/非对称/摘要).大数运算.非对称算法密钥生成 ...

  6. PAT 1077 互评成绩计算(20)(代码+思路)

    1077 互评成绩计算(20 分) 在浙大的计算机专业课中,经常有互评分组报告这个环节.一个组上台介绍自己的工作,其他组在台下为其表现评分.最后这个组的互评成绩是这样计算的:所有其他组的评分中,去掉一 ...

  7. Linux系统 SecureCRT SecureFX 注册破解方法

    1.创建脚本文件crack-binary.sh,内容如下: #!/bin/sh        cd $1  cat SecureCRT  | od -A n -v -t x1 | tr -d ' \n ...

  8. 五步打造APP节日主题设计:以Lofter新年图标设计为例

    我们需要做有依据,有逻辑,有理念的设计,需要发散思维,整合创意,严谨输出,让设计经得起推敲 前言 ​ 2018年春节已远去,一直想把Lofter新年Logo设计思路分享给大家,直到现在才整理出来,希望 ...

  9. [SoapUI] Tips and Tricks(提示和技巧)

    https://www.soapui.org/scripting-properties/tips-tricks.html

  10. Jmeter If Controller中设置多个条件用“与”进行连接

    "${noteID}"!="NOT FOUND" && "${securitiesId}"!="0P00011FQ ...