生成式AI领域的最新成果都在这里!抢 QCon 展区门票 了解详情
写点什么

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

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

关注

评论

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

🔥[深圳/北京/社招] 字节跳动-中台测试部门-移动端专项测试或测开,急招极速面试

管理员账号

招聘 社招

linux之pkill命令

入门小站

Linux

Go 语言网络库 getty 的那些事

apache/dubbo-go

dubbo Go 语言 Dubbo3

漏洞挖掘:一次反序列化漏洞学习

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 安全漏洞

JDK 内置命令行工具学习笔记一

风翱

JVM 9月日更

Prometheus 2.25.0 新特性

耳东@Erdong

release Prometheus 9月日更

与顶级互联网公司技术大佬面对面聊聊RocketMQ

阿里巴巴云原生

阿里云 RocketMQ 云原生

和声是容介态——为《链政经济:区块链如何服务新时代治国理政》一书作序

CECBC

dubbo-go github action 集成测试

apache/dubbo-go

dubbo-go Apache Dubbo Dubbo3

Golang正确使用kafka的姿势-细节决定成败

OpenIM

矿山中的鸿蒙花开

脑极体

“清洁地球日”看AI与碳中和:百度OCR成无纸化办公利器

百度大脑

人工智能

架构实战营 - 模块四作业

en

架构实战营

区块链军事应用探析

CECBC

【初恋系列】那年的雨还在下...

人工智能~~~

数据仓库的特性

奔向架构师

数据仓库 9月日更

Go 中队列的实现

baiyutang

9月日更

Mp3文件结构全解析(一)

轻口味

android 音视频 9月日更

Go 语言嵌入和多态机制对比

程序员历小冰

后端 引航计划

WEB架构的演变

Regan Yue

9月日更 WEB架构

云栖大会抢先看,提前探秘云栖数字谷

阿里巴巴云原生

阿里巴巴 云原生 云栖大会

人类高质量家庭成员:会自己赚钱的成熟卡车香吗?

脑极体

聊聊最近看的几本书

卢卡多多

读书感悟 9月日更

在线MySQL,SQL Server建表语句生成JSON测试数据工具

入门小站

工具

python学习:day3-流程控制

秦时明月

Python编程

谈 C++17 里的 Observer 模式 - 4 - 信号槽模式

hedzr

c++ 算法 设计模式 Design Patterns c++17

字节跳动灵魂拷问算法,三轮面试结局我哭了,但下次还敢

android 程序员 移动开发

服务实体经济,银行区块链应用正在画一个更大的圆

CECBC

22. 哪种工作最容易被AI取代

数据与智能

人工智能

【音视频专题】音频质量评估方法那些事

声网

算法 音视频

汽车之家基于dubbo-go云平台的探索和实践

apache/dubbo-go

dubbo dubbo-go dubbogo Dubbo3

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