写点什么

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

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

关注

评论

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

云原生:K8s控制器汇总(附视频教程+PDF)

息之

k8s Node Deployment statefulset cronjob

linux重要的目录之proc和dev目录

入门小站

Linux

『新华报』北京飞艇赛车微信群[手机乐乎]

天马行空

北京飞艇赛车微信群

[Pulsar] JWT认证的原理

Zike Yang

Apache Pulsar 12月日更

新知识的地图绘制

Nydia

Prometheus Exporter (十六)Microsoft SQL Server Exporter

耳东@Erdong

microsoft Prometheus 28天写作 exporter 12月日更

Linux常用命令-如何操作文件?

Java个体户

Linux

爸爸想对儿子说的话

Tiger

28天写作

趣谈“链路追踪组件” Skywalking 和 PinPoint

悟空聊架构

链路追踪 Skywalking 28天写作 悟空聊架构 12月日更

请清晰沟通选题-从策略层面定义技术演讲

将军-技术演讲力教练

举重若轻流水行云,前端纯CSS3实现质感非凡的图片Logo鼠标悬停(hover)光泽一闪而过的光影特效

刘悦的技术博客

CSS html css3 LOGO HTML5, CSS3

『新华报』重庆试试彩官方平台[手机乐乎]

天马行空

重庆试试彩官方平台

【LeetCode】亲密字符串Java题解

Albert

算法 LeetCode 12月日更

复制流动改变世界

mtfelix

28天写作

现实扭曲力场引论

Justin

群体心理学 28天写作 玄学

架构实战营 - 毕业设计

en

#架构实战营

33 K8S之访问控制

穿过生命散发芬芳

k8s 28天写作 12月日更

在线蚂蚁文,菊花文生成工具

入门小站

工具

架构实战营 - 毕业总结

en

#架构实战营

不懂这五项权力,做什么项目经理

Ian哥

项目管理 28天写作 五项权力

2.《重学JAVA》--初探JAVA

杨鹏Geek

「Java 25周年」 28天写作 12月日更

一图看懂软件缺陷检查涉及的内容

Tom(⊙o⊙)

软件安全 静态代码检查

『新华报』一分飞艇怎么操作的[手机乐乎]

天马行空

一分飞艇怎么操作的

『新华报』回血上岸导师[手机乐乎]

天马行空

回血上岸导师

Prometheus Exporter (十五)PostgreSQL Server Exporter

耳东@Erdong

Prometheus postgres 28天写作 exporter 12月日更

圣迪

用错误的动作,让正确的事情发生(3/28)

赵新龙

28天写作

架构训练营模块一作业

沈益飞

「架构实战营」

Golang Gin 框架之中间件(六)

liuzhen007

28天写作 12月日更

mongodb出现重复id怎么办?

喵叔

28天写作 12月日更

《深入理解JVM虚拟机》第三章 垃圾收集器与内存分配策略

Joseph295

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