译:Microsoft/ReactXP 简介
在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 简介的更多相关文章
- dig命令(转载)
dig命令使用大全(linux上域名查询) 可以这样说,翻译本篇文档的过程就是我重新学习DNS的过程,dig命令可以帮助我们学习DNS的原理,配置,以及其查询过程.以前使用dig仅仅是查询一下A记录或 ...
- .net学习网站汇总
http://chs.gotdotnet.com/quickstart/简介:本站点是微软.NET技术的快速入门网站,我们不必再安装.NET Framework中的快速入门示例程序,直接在网上查看此示 ...
- Office 365 开发概览系列文章和教程
Office 365 开发概览系列文章和教程 原文于2017年2月26日首发于LinkedIn,请参考链接 引子 之前我在Office 365技术社群(O萌)中跟大家提到,3月初适逢Visual St ...
- [dig]使用dig查看当前网络连通情况
1. dig domain, 通过server可以查到该域名被哪个server给解析了 2. dig @dns domain 不走/etc/resolve.conf,直接走指定的dns ------- ...
- dig命令使用大全
https://www.cnblogs.com/daxian2012/archive/2013/01/10/2854126.html 译者序:可以这样说,翻译本篇文档的过程就是我重新学习DNS的过程, ...
- 项目总结(二)->一些常用的工具浅谈
程序员是否应该沉迷于一个编程的世界,为了磨砺自己的编程技能而两耳不闻窗外事,一心只为写代码:还是说要做到各有涉猎,全而不精.关于这点每个人心中都有一套自己的工作体系和方法体系. 我一直认为,程序员你首 ...
- Dig HOWTO 中文手册--dig命令使用大全
Dig HOWTO 中文手册--dig命令使用大全 DNS -- 本人翻译的dig howto手册. 译者序: 可以这样说,翻译本篇文档的过程就是我重新学习DNS的过程,dig命令可以帮助我们学习DN ...
- 【转载】解决繁体、日文游戏乱码的五种方法 转载自:http://tieba.baidu.com/p/488627981
方法1:转换区域 开始——设置——控制面板——区域和语言选项——分别选择“高级”和“区域选项”标签——在其下拉框中都选择“日语”(或“日本”)(选项有点多,慢慢找)——重启后即可生效. *某影注:日语 ...
- React Native 三端同构
React Native 三端同构 https://www.ibm.com/developerworks/cn/web/wa-universal-react-native/index.html rea ...
随机推荐
- Hibernate使用固定值关联表
假设表A与表B需要进行一对一关联,表A的a1字段等于表B的a1字段,同时表B中的b2字段需要为某一固定值,可采取如下方式配置: public class A { private String a; @ ...
- ALL ANY SOME 这样解释好理解很多
--All:对所有数据都满足条件,整个条件才成立,例如:5大于所有返回的id select * from #A where 5>All(select id from #A) go --Any:只 ...
- 破解版ps
http://www.sdifen.com/adobe-photoshop-cc.html
- GridView中如何实现自定义时间货币等字符串格式?
方法一: <asp :GridView ID="GridView1" runat="server"> <columns> <asp ...
- 转)ubuntu安装clang
主要参考:http://blog.csdn.net/firebird321/article/details/48528569 1.下载源码 去http://llvm.org/releases/down ...
- SweetAlert2 弹窗
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- IntentService----意图服务
意图服务是异步进行的 执行完操作后就会自己消毁(onDestroy方法) 本例为点击按钮下载三张图片相当于连续执行三次意图服务中的onStartcommand方法 import android.ap ...
- 使用Linux之安装jdk 7
工具/原料 jdk7源码安装压缩包 方法/步骤 卸载OpenJDK rpm -qa | grep java rpm -e --nodeps java-1.6.0-openjdk-1.6.0 ...
- 通过html5 的EventSource来进行数据推送
以往我们要获取服务器的数据更新,一般通过ajax的定时请求,不过这样效率就低了.我们通过html5的EventSource可以很方便的获取服务器的数据更新,不过IE好像不支持. 例1如下: ind ...
- 让php支持多线程,win下安装pthreads
1.检查PHP版本是否支持线程安全 在phpinfo()的显示页中,搜索Thread Safety,如果是enabled,则PHP版本是线程安全的. 2.在http://windows.php.net ...