写点什么

React 0.14 候选版发布,添加包分割,Refs 语法等新特性

  • 2015-09-17
  • 本文字数:1059 字

    阅读完需:约 3 分钟

两个月以前,React 0.14 发布 Beta 版,目前,该项目正式发布候选(RC)版。React 0.14 将强制分离渲染引擎与关注点,简化无状态组件的声明,添加新语法 refs

React 0.14 将被分割为两个包:reactreact-dom。这一决定旨在强制分离 React 和它的 DOM 渲染引擎。分离后的react包含各种创建组件的方法,例如:React.createElementReact.createClassReact.Component、React.PropTypesReact.childrenreact-dom包含各种渲染方法,例如:ReactDOM.renderReactDOM.unmountComponentAtNodeReactDOM.findDOMNodereact-dom/server提供对服务器端组件渲染功能的支持。

Facebook 尝试通过这次分离实现两个目标:

  • 允许开发者自定义 DOM 渲染引擎;
  • 允许跨渲染引擎共享组件,例如:react-dom[react-native][3][react-art][4][react-canvas][5]以及[react-three][6]

第二个主要变化是,React 0.14 为内建的 DOM 节点引入了关注点引用(concerns refs)。在 React 0.13 中,如果你想通过引用(ref)访问一个节点属性,需要这样写:

复制代码
const nameNode = this.refs.name.getDOMNode();

在 React 0.14 中,内建 React 节点的引用是节点本身,所以代码可以简化为:

复制代码
const nameNode = this.refs.name;

引用节点的唯一作用是访问它的 DOM 节点,基于这个理念,这次的改变只针对内建节点,不会影响用户自定义的节点。与此同时,.getDOMNode()方法也被弃用并使用ReactDOM.findDOMNode进行替代。为此,Facebook 发布了一个名为 codemod 的脚本来帮助开发者完成这一转变。

此外,React 0.14 也在尝试简化有其它组件组成的无状态组件的声明方式,这与 React 0.13 启动时 Facebook 工程师所陈述的如出一辙:

不幸的是,我们不会在 React 中针对 ES6 类语法提供 mixin 支持。那与我们使用符合语言习惯的 JavaScript 的观念相违背。[…] 我们同样会开始设计一个新的组合 API,可以不借助 mixin 简化常见的任务。

React 0.14 中的新语法将允许使用props作为参数并返回渲染的元素:

复制代码
var Aquarium = (props) => {
var fish = getFish(props.species);
return <tank>{fish}</tank>;
};

React 0.14 还会弃用一些方法,例如:this.getDOMNode()setPropsreplaceProps等。此外,React 0.13 中所有的弃用警告全部转变为错误抛出。

可以通过npm安装 React 0.14:

复制代码
npm install --save react@0.14.0-rc1
npm install --save react-dom@0.14.0-rc1

也可以访问 React 的 Github 仓库通过 bug tracker 来提交 issue。

查看英文原文: React 0.14 Hits Release Candidate, Adding New Package Split, Refs Syntax, and More

2015-09-17 19:002655
用户头像

发布了 63 篇内容, 共 134.2 次阅读, 收获喜欢 38 次。

关注

评论

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

到底一台服务器能够支持多少TCP并发连接?

南方有乔木兮

Django框架,Flask框架和Tornado框架各有什么优缺点

古月木易

django flask tornado

NameNode和SecondaryNameNode工作机制

奈学教育

NameNode

第八周总结

andy

极客大学

一个小实验,来

池建强

算法 薪资

Flink 1.11 SQL 使用攻略

Apache Flink

flink

国家版权局发布《关于规范摄影作品版权秩序的通知》

CECBC

电子存证 作品版权 侵权盗版 剑网2019

池化技术到达有多牛?看了线程和线程池的对比吓我一跳!

王磊

Java

当远程工作成为未来的工作方式......

Atlassian

Atlassian Jira

LeetCode题解:142. 环形链表 II,JavaScript,快慢指针,详细注释

Lee Chen

大前端 LeetCode

真香!Linux 原来是这么管理内存的

苹果看辽宁体育

Linux 操作系统

第八周作业

田振宇

如何成为一个成功的首席数据官

麒思妙想

乘商用之风,破后疫情之浪:丁耘分享华为如何持续护航5G新价值

脑极体

4. JSON字符串是如何被解析的?JsonParser了解一下

YourBatman

Jackson JSON库

如何设计一个亿级消息量的IM系统

Java Architecture Architect IM Instant Messaging

顺势昌,逆势亡:人啊,得学会做信天翁,而不是鹧鸪鸟

非著名程序员

创业 程序员 管理 提升认知

QQ音乐PB级ClickHouse实时数据平台架构演进之路

腾讯云大数据

大数据

秒杀全网!研发、运营必备实用工具网站

程序员生活志

工具类网站

什么样的信任才值得拥有?谈一谈极客邦的5K1S文档

霍太稳@极客邦科技

一周信创舆情观察(7.20~7.26)

统小信uos

将Arch Linux安装到U盘

Kurtis Moxley

Linux 安装操作系统

央行数字货币或将成为经济“内循环”的未来加速器

CECBC

数字经济 全球经济下行 降息 惠普金融深化

Django框架,Flask框架和Tornado框架各有什么优缺点

奈学教育

django flask tornado

蚂蚁上市:P7可获1200万元期权,酸酸酸酸酸...

程序员生活志

互联网热点 蚂蚁金服

week08 总结

Z冰红茶

NameNode和SecondaryNameNode工作机制

古月木易

NameNode econdaryNameNode

第八周作业

andy

极客大学

计算机网络基础(十)---网络层-迪杰斯特拉算法

书旅

算法 计算机网络 网络 最短路径

原创 | 使用JPA全面实现DDD持久化【关于本书】

编程道与术

Java hibernate DDD JDBC jpa

实战:docker搭建FastDFS文件系统并集成SpringBoot

生命在于折腾

springboot

React 0.14候选版发布,添加包分割,Refs语法等新特性_JavaScript_Sergio De Simone_InfoQ精选文章