BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

React v15发布

| 作者 David Iffland 关注 4 他的粉丝 ,译者 刘嘉洋 关注 0 他的粉丝 发布于 2016年4月18日. 估计阅读时间: 3 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

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)关注我们。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

版本大跃进 by Amos Xu

直接从0.14到15,你怕不怕?

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

1 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT