写点什么

React v15 发布

  • 2016-04-17
  • 本文字数:939 字

    阅读完需:约 3 分钟

Facebook 最近发布了 React 15 的最终版,清理了许多 DOM 问题,提升了性能,增强了对 SVG 的支持。

在该版本中,React 在渲染 HTML 方面有两项重大更新:移除 data-reactid 属性和文本中不必要的<span>元素。在早先的版本中,渲染的 DOM 元素可能是这样:

复制代码
<div data-reactid=".0.0.5">
<div data-reactid=".0.0.5.0">Hello</div>
</div>

而现在,同样的 HTML 片段却是这样的:

复制代码
<div>
<div>Hello</div>
</div>

在某些纯文本元素中去除<span>标签不仅可以让渲染的 HTML 更干净,也可以帮助修复开发者可能遇到过的非预期的 CSS 行为问题。

新版本完成了对所有 SVG 属性的支持,但是在候选(Release Candidate)版本的发布后,它发生了一些变化。在 GitHub 提交信息中, Paul O’Shannessy 称在团队讨论过如何让新用户更加方便地使用 React 之后对 SVG 白名单进行了更新:

候选版本让我们在 HTML 和 SVG 行为方面处于不一致状态。这样并不好,我们必须从 React 中学到很多教训,抛出更多的不一致是不好的。所以我们会暂时回退一步,但仍会通过之前的白名单继续对 SVG 提供完整的支持,并且我们会扩展这个白名单。

有意思的是,你会发现 O’Shannessy 编写了一个脚本,通过分析Mozilla Developer Network 找出完整的SVG 属性列表。

因为这是一次主要版本发布,所以做了一些突破性改变。除了新的DOM 渲染变化,在0.14 版本中引入的废弃的特性现在都已移除。

从v15.0 版本开始,使用TypeScript1.8.9 版本的用户不能再编译TSX 文件,这是由于新版本移除了一个废弃的特性。虽然有其他的变通方案, Facebook 还是恢复了 React.__spread API 并正式弃用了它。Dan Abramov 警示大家说,在下次主要发布中它将被弃用,因此任何用到这个API 的工具集必须停止使用它。在下次发布中会有对该TypeScript 问题的修复。

正如InfoQ 早先报道过的那样,这是React 首次使用新的版本命名方式。之前的版本编号形如 “0.14.7”。

根据最新的团队会议备忘录,社区将会看到更多小版本的发布和补丁,以及改进的变更日志。

查看英文原文 React v15 Released


感谢丁涛对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016-04-17 19:002704
用户头像

发布了 218 篇内容, 共 72.1 次阅读, 收获喜欢 76 次。

关注

评论

发布
暂无评论
发现更多内容

宏杉科技加入阿里云PolarDB开源数据库社区

阿里云数据库开源

阿里云 polarDB 阿里云数据库 PolarDB-PG PolarDB for PostgreSQL

【译】日志:每个软件工程师都应该了解实时数据的统一抽象【一】

Rae

架构 分布式 日志 原理

边缘服务网格 osm-edge 概览

Flomesh

Service Mesh 服务网格

软件测试 | 测试开发 | 测试人员必须掌握的测试用例

测吧(北京)科技有限公司

测试

TiDB v6.2 发版

PingCAP

#TiDB

软件测试 | 测试开发 | AppCrawler 自动遍历测试实践(三):动手实操与常见问题汇总

测吧(北京)科技有限公司

测试

软件测试 | 测试开发 | 常见接口协议解析

测吧(北京)科技有限公司

TCP

TDengine3.0计算查询引擎的优化与升级

TDengine

数据库 tdengine 时序数据库 企业号九月金秋榜

RPC接口测试技术-Tcp 协议的接口测试

霍格沃兹测试开发学社

最新版!955、不加班、双休的公司名单

千锋IT教育

一文带你了解K8S 容器编排(上)

霍格沃兹测试开发学社

精彩演讲实录|在确定性和不确定性中探索AIOps的适用性

TRaaS

技术文章

软件测试 | 测试开发 | 一文搞定 uiautomator2 自动化测试工具使用

测吧(北京)科技有限公司

自动化测试

TiFlash 源码解读(七)TiFlash Proxy 模块

PingCAP

TiDB TiDB 源码解读

开学季 | Y 省教育厅这张卷,融云答出了100分!

融云 RongCloud

通讯协议

你的秋日好运正在派件,请查收9月月更活动!

InfoQ写作社区官方

热门活动 9月月更

内核实战教程第四期 _ 带你走进数据库 SQL 引擎

OceanBase 数据库

易观分析&Pangle联合发布《全球新兴市场移动应用报告》

易观分析

新兴市场

为什么资源隔离对HTAP至关重要?

OceanBase 数据库

不信谣不传谣,亲自动手验证ModelBox推理是否真的“高性能”

华为云开发者联盟

人工智能 企业号九月金秋榜

新书上市 | 十分易上手的图解教程,全系列累计销量20万册!

图灵教育

程序员 计算机 图论

【译】YouTube 架构

Rae

数据库 架构 youtube 后端技术

开源治理的基本实践与指导原则

SEAL安全

开源 开源安全 软件供应链安全 开源安全与治理

hive on spark 还是 spark on hive?

一生要强的查数姑

大数据 hive spark SQL 大数据仓库

软件测试 | 测试开发 | 如何使用代理配置快速定位接口测试脚本问题?

测吧(北京)科技有限公司

测试

我们做了一个云原生成本优化产品

TRaaS

新书上市 | 十分易上手的图解教程,全系列累计销量20万册!

图灵社区

程序员 计算机 图论

Python代码用在这些地方,其实1行就够了

华为云开发者联盟

Python 开发 企业号九月金秋榜

fastposter v2.9.2 最简海报生成器

物有本末

海报生成器 电商海报 图片生成

从原理剖析带你理解Stream

华为云开发者联盟

开发 企业号九月金秋榜

软件测试 | 测试开发 | app自动化测试(Android)-- Capability 使用进阶

测吧(北京)科技有限公司

Andriod

React v15发布_JavaScript_David Iffland_InfoQ精选文章