写点什么

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

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

关注

评论

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

阿里P10热荐,面试前必看!Java高并发编程五套“完美日记”GitHub已经标星78K

Java架构追梦

Java 阿里巴巴 架构 面试 并发编程

如何使用 Distroless 让你的容器更加安全

K8sCat

flask Docker Kubernetes Google Distroless

花168大洋买来的【阿里P8Java成长笔记】,看完才知道我就是菜鸡

Java架构师迁哥

秋招冲刺:网络安全工程师入围成功之旅!!

网络安全学海

面试 运维 网络安全 信息安全 渗透

深度解读畅捷通云原生架构转型实战历程

阿里巴巴云原生

云原生

字节跳动异构场景下的高可用建设实践

火山引擎开发者社区

架构 后端

智慧迪拜与不可或缺的区块链技术

CECBC

全网72万浏览量!阿里重磅开放 “SpringCloudAlibaba学习笔记”(附下载)!

Java 编程 架构 面试 微服务

今天,「浪潮云说」直播间开讲啦!

【案例】消除隐患,基于电力大数据的群租房智能分析

星环科技

Linux运维职业困惑?给你史上最全互联网Linux工作规划!

学神来啦

阿里专家把SpringBoot:入门+基础+进阶+项目全部整理出来了

Java 编程 架构 面试 微服务

架构之:微服务架构漫谈

程序那些事

架构 微服务 程序那些事

昆明智慧安防小区建设方案,平安社区建设

记一次MySQL磁盘满了之后清理的过程

北游学Java

Java MySQL

云小课 | 玩转HiLens Studio之快速订购HiLens Studio版本

华为云开发者联盟

AI modelarts 华为HiLens HiLens Studio EI智能体

万物互联时代,如何玩转鸿蒙系统的用户体验?

博睿数据

鸿蒙 用户体验 博睿数据

java特点了解及JDK初谈(程序员必看!)

Java 程序员 面试

查漏补缺!复盘B站面试坑我最深的Java并发:JDK源码剖析

Java 编程 程序员 架构 面试

备战金九银十:4000道Java面试真题合集,助你搞定面试官

☕️【Java技术之旅】【ConcurrentHashMap】深入浅出核心源码分析(JDK1.7版本)

洛神灬殇

Java 源码分析 ConcurrentHashMap 6月日更

我的企业安全观

I

安全架构 企业安全 组织架构 安全运营 安全协作

我去,这是出BUG了呀!

why技术

Java dubbo 后端

图解 Redis丨这就是 RDB 快照,能记录实际数据的

华为云开发者联盟

redis 数据 日志 aof RDB 快照

权限与认证:HTTP状态码返回

程序员架构进阶

Java HTTP 28天写作 6月日更

数字货币将给我们的生活带来什么?

CECBC

译文 | 新手PM指南:你应该避开的六大常见错误

LigaAI

产品 产品经理 产品设计

Nginx的进程管理与重载原理

Linux服务器开发

nginx 后端 中间件 Linux服务器开发 进程管理

直播连麦技术闭坑篇

anyRTC开发者

音视频 WebRTC 视频直播 视频通讯 视频连麦

未来,让我们一起想象 — “Imagine” 阿里云视频云全景创新峰会

阿里云视频云

阿里云 计算机视觉 音视频 视频 英特尔

智慧社区平台解决方案,平安小区建设解决方案

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