10 月 23 - 25 日,QCon 上海站即将召开,现在购票,享9折优惠 了解详情
写点什么

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:002885
用户头像

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

关注

评论

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

React的5种高级模式

夏天的味道123

React

python实现ftp服务端和客户端

技能实验室

Python 10月月更

深度解析云安全责任共担模型

HummerCloud

10月月更

深度理解Redux原理并实现一个redux

夏天的味道123

React

AI 应用的全流程存储加速方案技术解析和实践分享

Baidu AICLOUD

海量存储 高性能计算 高性能存储 AI加速

技术分享 | 使用 Zabbix + Grafana 搭建服务器监控系统

霍格沃兹测试开发学社

在线问题反馈模块实战(三):自动生成所有Controller、Service、Mapper等文件

bug菌

springboot 项目实战 10月月更

React-diff原理及应用

xiaofeng

React

使用python给图片加个盲水印

技能实验室

Python 10月月更

在Centos6.10安装python3后安装第三方包遇到的问题

技能实验室

Python 10月月更

python中的一个实用的库imghdr,用于探测图片格式

技能实验室

Python 10月月更

SPL 工业智能:识别指定工况

石臻臻的杂货铺

SPL 10月月更

STM32 非接触测温传感器 项目记录(ModbusRTU协议)

矜辰所致

stm32 ModbusRTU 10月月更 非接触测温

testcontainers-java 新增对 TiDB 的支持

PingCAP

TiDB

React-Hook最佳实践

xiaofeng

React

使用python处理视频的库moviepy

技能实验室

python 3.5+ 10月月更

使用python提供一个简单的restful接口

技能实验室

python 3.5+ 10月月更

windows机器配置自签名ssl证书,部署文件服务器

技能实验室

windows SSL证书 10月月更

Zebec 以 Layer2 的形式推出 Zebec Chain,流支付新时达来临了

鳄鱼视界

React高级特性之Context

夏天的味道123

React

一文读懂 DNS 解析的工作机制和优化挑战

融云 RongCloud

DNS

高级特性之Render Props

夏天的味道123

React

翻译API的python调用方式

技能实验室

Python 10月月更

使用python校验密码强度

技能实验室

python 3.5+ 10月月更

技术分享 | 一文搞定 Appium 环境配置

霍格沃兹测试开发学社

使用python时刻中监控文件夹,记录文件夹中文件异常信息

技能实验室

Python 10月月更

python版局域网端口扫描

技能实验室

Python 10月月更

python替换图片背景色,适用于制作证件照

技能实验室

python 3.5+ 10月月更

国产CPU执行SPL实现数据库运算的性能实用性测试

石臻臻的杂货铺

数据库 SPL 10月月更

个推TechDay治数训练营第三期直播预告:分享数据指标体系搭建秘诀!

个推

数据中台 数据分析 指标体系 数据指标 指标中台; 数据分析

使用python计算两个位置的距离是多远

技能实验室

Python 10月月更

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