---
author: Wxy
category: 新闻
comments_data:
- date: '2017-09-28 12:46:25'
  message: "而 React 16 中的服务器端渲染也要比之前的版本快得多，测试表明，其比 Node 4 快 2.4 倍，比 Node 6 快 3 倍，比
    Node 8.4 快 3.8 倍。<br />\r\n<br />\r\n什么叫&quot;比node快x倍&quot;?<br />\r\n<br />\r\n应该是&quot;比老版的React快x倍&quot;吧"
  postip: 117.151.52.208
  username: 来自湖北的 Chrome 61.0|Windows 10 用户
count:
  commentnum: 1
  favtimes: 0
  likes: 0
  sharetimes: 0
  viewnum: 4373
date: '2017-09-28 10:41:48'
editorchoice: false
excerpt: 26 日，Facebook 发布了 React 16，并如之前承诺的，将 React 16 JavaScript 库以及 GraphQL 查询语言的许可证从原来的
  BSD + 专利条款改为更受欢迎的 MIT 许可证。
fromurl: ''
id: 8910
islctt: false
largepic: /images/p/201709/28/104143xaah3a8h58zaaa58.jpg
permalink: /article-8910-1.html
pic: /data/attachment/album/201709/28/104143xaah3a8h58zaaa58.jpg.thumb.jpg
related:
- displayorder: 0
  raid: 8733
- displayorder: 1
  raid: 8876
- displayorder: 2
  raid: 8880
- displayorder: 3
  raid: 8895
reviewer: ''
selector: ''
summary: 26 日，Facebook 发布了 React 16，并如之前承诺的，将 React 16 JavaScript 库以及 GraphQL 查询语言的许可证从原来的
  BSD + 专利条款改为更受欢迎的 MIT 许可证。
tags:
- React
- Facebook
- 专利
thumb: false
title: React 16 发布，Facebook 如约解除了专利条款
titlepic: true
translator: ''
updated: '2017-09-28 10:41:48'
---

![](/data/attachment/album/201709/28/104143xaah3a8h58zaaa58.jpg)


26 日，Facebook [发布](https://facebook.github.io/react/blog/2017/09/26/react-v16.0.html)了 [React 16](https://github.com/facebook/react)，并如[之前承诺](/article-8895-1.html)的，将 React 16 JavaScript 库以及 GraphQL 查询语言的许可证从原来的 BSD + 专利条款[改为更受欢迎的 MIT 许可证](https://github.com/facebook/react/commit/b765fb25ebc6e53bb8de2496d2828d9d01c2774b)。


正如 Facebook 工程总监 Adam Wolff 上周说的，“Facebook 未能说服开发者社区其 BSD + 专利条款的许可证是与开源需求所兼容的”，因此，在招致社区的抗议和抛弃，尤其是在发生了 [Apache 基金会将 React 的许可证列入“X 类别”](/article-8733-1-rel.html)和 [WordPress 弃用 React](/article-8880-1.html) 事件之后，Facebook 表示愿意将这个重要的 JavaScript 基础框架更换成大家更欢迎的 MIT 许可证。


作为最广泛使用的用于构建 Web 用户界面的基础框架，React 的这一许可证的修改得到了社区的强烈反响，虽然有些不同意见，但是大部分人还是表示喜闻乐见——一方面代表了社区的胜利，另外一方面也可以避免大量的采用 React 的项目重写。


不过，也有一些人对 Facebook 采用 MIT 许可证表达了不同的看法。RedMonk 的创始人 Stephen O'Grady [表示](http://redmonk.com/sogrady/2017/09/26/facebooks-bsd-patents/)，Facebook 采用不包括专利条款的 MIT 许可证，而没有采用包含了更弱的专利条款的 Apache 许可证，相比于原来的 BSD + 专利条款，按倒了葫芦起了瓢。“问题是，通过选择这种方式，Facebook 并没有像在 Apache 许可证下一样在 MIT 许可证中传达任何专利授权……如果 Facebook 在 React 申请了专利，换句话说，该软件的用户并没有被 MIT 许可证授予明确的许可，只有一个未经测试的隐含许可”。


此外，除了 React 16 换用了新的 MIT 之外， Facebook 也将前一天发布的 React 15.6.2 换用了 MIT 许可证，以便那些不方便升级 React 16 的用户使用。


而曾经被 [Gitlab 由于该许可证条款而放弃](https://www.theregister.co.uk/2017/09/20/gitlab_suspends_graphql_project_over_facebook_license_terms/)的 GraphQL [也被修改了许可证](https://medium.com/@leeb/relicensing-the-graphql-specification-e7d07a52301b)。作为一个用于规定实现标准的规范，其现在被放在<ruby> <a href="http://www.openwebfoundation.org/legal/the-owf-1-0-agreements/owfa-1-0">  开放式网络基金会协议 </a> <rp>  （ </rp> <rt>  Open Web Foundation Agreement (OWFa) v1.0 </rt> <rp>  ） </rp></ruby>之下，并且现在 Facebook 的 GraphQL 实现也采用了 MIT 许可证发布。


作为一个广泛使用 JavaScript 框架，这次 React 16 的升级只有很少的破坏性改变，虽然其中大部分库都[经过了重写](https://code.facebook.com/posts/1716776591680069/react-16-a-look-inside-an-api-compatible-rewrite-of-our-frontend-ui-library/)。而新的 React 16 支持异步渲染，允许处理大型组件树而不会阻塞主执行线程。此外，还增加了一些屡屡被要求而难以添加的功能，比如使用错误边界进行异常捕获，和从渲染器返回多个组件。


而 React 16 中的服务器端渲染也要比之前的版本快得多，[测试表明](https://medium.com/@aickin/whats-new-with-server-side-rendering-in-react-16-9b0d78585d67)，其比 Node 4 快 2.4 倍，比 Node 6 快 3 倍，比 Node 8.4 快 3.8 倍。


![](/data/attachment/album/201709/28/104149mtoz17i0znywst37.png)