Facebook发布React16专利条款改为MIT开源协议
9 ⽉ 26 ⽇,⽤于构建 UI 的 JavaScript 库 React 16 的最新版本上线。
Facebook 最终在现有的两种 React 版本中选择了出现 bug 概率最少的⼀款。这次版本更新的最⼤看点是 React 重写了核⼼。
并如之前承诺的,将 React 16 JavaScript 库以及 GraphQL 查询语⾔的许可证从原来的 BSD + 专利条款改为更受欢迎的 MIT 许可证。
之前专门做了⼀个关于React.js例⼦的⽹站。推荐访问阅读:。
作为最⼴泛使⽤的⽤于构建 Web ⽤户界⾯的基础框架,React 的这⼀许可证的修改得到了社区的强烈反响,虽然有些不同意见,但是⼤部分⼈还是表⽰喜闻乐见——⼀⽅⾯代表了社区的胜利,另外⼀⽅⾯也可以避免⼤量的采⽤ React 的项⽬重写。
Facebook 前端⼯程师 Andrew Clark 在博客上正式发布了 React 16,并展⽰了⼀些新特性,这些特性包括:
1. render 函数可返回数组和字符串。不必增加嵌套了,数组需带有 key 属性。
2. 更好的错误处理。现在你可以在组件内部出错时使⽤⼀个替代的 UI。
3. Portal 函数。可以在 DOM 任意位置插⼊内容。现在想弹个对话框或 tooltip 更⽅便了。
4. 超快的 SSR。React 16 改进了服务端渲染,据测试,相⽐ React 1
5.
6.1,在不同版本的 Node 环境下可达到 5-10 倍的性能提升。
5. ⽀持⾃定义的 DOM 属性。现在不⽤使⽤属性 whitelist 了,React 会将未知属性直接传到 DOM 中。
6. 减⼩了库⽂件⼤⼩。现在的 React 核⼼库⼤⼩仅 5.3kb(gzip 后 2.2kb),相⽐原来缩减了 30%。
7. 更改为 MIT 开源协议。上周 Facebook 发表博客表⽰怂了,从 React 16 开始更改为更宽松的 MIT 协议。对于某些不⽅便升级的 React
⽤户,还发布了 15.6.2 版本,也改⽤了 MIT 协议。
除了上⾯这些之外,React 16 变化最⼤的是因为使⽤了新引擎 React Fiber。
React Fiber 是对 React 核⼼架构的彻底重写,Fiber 是⼀种轻量的执⾏线程,依靠更⾼级的任务调度,实现协作式的多任务处理。
上⾯的⼤多数特性都是由 React Fiber 带来,并且它还让异步渲染成为了可能,采⽤了异步渲染以后 React 应⽤响应会更加灵活,主线程将不会被阻塞。
Facebook 的⼯程经理 Sophie Alpert 在⼀篇讲述架构变更的⽂章中写道,“这好⽐给⼀辆⾏进中的汽车更换引擎”:
我们在保持外部 API 不变的同时彻底重写了 React……数百个公司(包括 Facebook 在内)每天都在使⽤ React,我们希望在重写 React 时不会影响到他们。
Facebook 使⽤了功能开关(feature flag),这样 Fiber 和 Non-Fiber 版本就可以放在⼀起。他们运⾏单元测试,在和上运⾏新代码,以此来发现和减少软件缺陷,并驱动新渲染器的功能演进。
react tooptip组件当然,重写是不完美的,可能会带来⼀些重⼤的变更。Clarks 说,这些变更”只会影响到⼀些不太常见的情况,我们不希望它们给⼤多数应⽤造成影响“。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论