写点什么

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

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

关注

评论

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

模块九作业-设计电商秒杀系统

deng

架构实战营

一文了解数据库事务和隔离级别

Ayue、

MySQL 事务 1月月更

不会一致性hash算法,劝你简历别写搞过负载均衡

程序员小富

Java 面试 算法 架构设计 一致性算法

3 【精】TOGAF认证报考指南(一文讲透)

企业架构知识体系

企业架构 架构师 培训 TOGAF

疫情下的口罩生活,演绎出了哪些心理剧场?

脑极体

大画 Spark :: 网络(1)-如何构建起基础的网络模型

dclar

大数据 spark 源代码 框架原理

解析HetuEngine实现On Yarn原理

华为云开发者联盟

sql 大数据 hadoop HetuEngine On Yarn

DevOps 需要更多的自动化

SoFlu软件机器人

华为云VSS漏洞扫描服务之开源组件漏洞检测能力

华为云开发者联盟

安全 华为云 漏洞 漏洞扫描 VSS漏洞扫描服务

前端开发之jQuery的常用方法

@零度

jquery 前端开发

虎年前迎来脑科学新锐:脑虎科技的创生故事

脑极体

一次ATDD的团队实践

Bruce Talk

敏捷 Agile User Story Product Owner Coach/Facilitate

构建云端智慧厨电 呵护人间烟火之智慧云厨房的那些事儿

坚果

华为云 1月月更

大数据实践:数据指标中心的建设思路

五分钟学大数据

大数据 1月月更

有关 TiDB 升级的二三事——教你如何快乐升级

PingCAP

字节码增强技术之 Java Agent 入门

zuozewei

性能分析 埋点 javaagent 性能监控 1月月更

被忽视的NTP安全

喀拉峻

网络安全 安全 信息安全

11 Prometheus之日志及探针监控

穿过生命散发芬芳

Prometheus 1月月更

云计算服务滥用安全防范

明亮安全观

云计算 网络安全 信息安全 云安全 安全加固

ReactNative进阶(十二):本地存储 AsyncStorage 及 Realm 使用

No Silver Bullet

React Native 1月月更 realm AsyncStorage

人类视觉计算理论经典著作,豆瓣评分9.7,中文版惊鸿面世!

博文视点Broadview

使用 Visual Studio Code 编写和激活 ABAP 代码

汪子熙

vscode abap 1月月更 vs-code

今儿新学会一个写日志技能:双缓冲机制

华为云开发者联盟

线程 日志 应用程序 双缓冲区 Web程序

高并发下如何实现对象的共享?

JavaEdge

1月月更

一个cpp协程库的前世今生(十八)空闲与等待

SkyFire

c++ cocpp

万字长文带你漫游数据结构世界

秦怀杂货店

Java 数据结构 算法

1月月更|推荐学Java——Maven初识

逆锋起笔

maven javase Java后端 java 编程

当时间管理碰上大数据,从此,悠悠时光也终不再那么漫长

华为云开发者联盟

MySQL 数据库 云原生 App 云数据库RDS for MySQL

【伙伴故事】智慧厨电接入华为云+HarmonyOS,你的未来厨房长这样

华为云开发者联盟

华为云 HarmonyOS iotda 智慧厨电 厨房

记录一下童慧琦正念练习

wood

300天创作

记EVO 使用error

Ayosh

EVO

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