写点什么

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

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

关注

评论

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

工信部电子标准院授予阿里巴巴9个开源项目“优秀”评级

云布道师

阿里云

MatrixOne入选艾瑞数据库研究报告啦~

MatrixOrigin

分布式数据库 国产数据库 MatrixOrigin MatrixOne 艾瑞咨询

荣誉+1,龙蜥荣获“2022年度杰出开源运营团队”奖项

OpenAnolis小助手

开源 InfoQ 运营 获奖 龙蜥团队

【Dubbo3 终极特性】「云原生三中心架构」带你探索 Dubbo3 体系下的配置中心和元数据中心、注册中心的原理及开发实战(中)

洛神灬殇

dubbo 注册中心 配置中心 Dubbo3 元数据中心

ElasticSearch必知必会-进阶篇

京东科技开发者

ES 集群 索引技术 Elastic Search 企业号 1 月 PK 榜

运联智库发布2022供应链及合同物流百强排行榜

联营汇聚

BI 可视化工具不只有视图,还有报表

搞大屏的小北

数据可视化工具 DataEase

dcm4che 解析 修改 保存 dicom文件

JefferLiu

1 📖 《JavaScript高级程序设计》__ 什么是JavaScript?

HoMeTown

JavaScript #读书 前端‘’

2023年1月中国数据库排行榜:OceanBase 持续两月登顶,前四甲青云直上开新局

墨天轮

数据库 opengauss tdsql 国产数据库 polarDB

3 📖 《JavaScript高级程序设计》__ 语言基础(下)

HoMeTown

JavaScript 前端 读书 js 前端面试

mysql 中字段的 collate 和 charset 有什么区别

ModStart

如何打造一个“无需激励”自运转的技术团队?

石云升

极客时间 复盘 激励 1月月更 技术领导力实战笔记

为什么数字化转型需要“低代码”?

元年技术洞察

DevOps 低代码 数字化转型 低代码平台

2 📖 《JavaScript高级程序设计》__ HTML中的JavaScript

HoMeTown

JavaScript 前端 读书 js

3 📖 《JavaScript高级程序设计》__ 语言基础(上)

HoMeTown

JavaScript 前端 读书 js

如何使用极狐GitLab 机器人大幅提升研发效率

极狐GitLab

项目管理 DevOps 机器人流程自动化 极狐GitLab 研发效率

LED显示屏都需要4个配套设施

Dylan

LED显示屏 户外LED显示屏 led显示屏厂家

“低代码+PaaS”的技术创新实践

元年技术洞察

方舟 低代码 数字化转型 低代码平台

玩转机密计算从 secGear 开始

openEuler

开源 操作系统 openEuler 机密计算

虚拟化技术浅析第二弹之初识Kubernetes

京东科技开发者

云计算 容器 微服务 #Kubernetes# 虚拟化技术

研发团队绩效考核:Leader 如何做到赏罚分明?

石云升

极客时间 复盘 1月月更 技术领导力实战笔记

eBPF SIG年度动态: eBPF和Wasm深度融合、参与7场活动及2023展望 | 龙蜥 SIG

OpenAnolis小助手

Linux 开源 ebpf 龙蜥社区 sig

Pipy 实现 SOCKS 代理

Flomesh

HTTP Service Mesh 服务网格 Pipy 流量管理

企业的数据存储、处理与分析之道

云布道师

阿里云 云存储

岁末年初捷报频传 HashData斩获多项行业殊荣

酷克数据HashData

数据库·

Disney 流媒体广告 Flink 的应用实践

Apache Flink

大数据 flink 实时计算

华为运动健康服务Health Kit 6.9.0版本新增功能揭秘!

HarmonyOS SDK

HMS Core

云原生安全系列 5:ETCD 安全加固

HummerCloud

etcd Kubernetes, 云原生, eBPF

使用 NineData 实现备份集的实时查询

NineData

数据库 数据 NineData 备份集 实时备份

马蜂窝如何利用 APISIX 网关实现微服务架构升级

API7.ai 技术团队

api 网关 APISIX envoy ingress Kubernetes, 云原生, eBPF

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