2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

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

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

关注

评论

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

平阴玫瑰×浪潮云洲:见证一朵玫瑰的绽放

云计算

来自 Apache APISIX committer 的经验分享 —— 编程之夏专访

API7.ai 技术团队

后端 技术人 API 网关

如何解决回归任务数据不均衡的问题?

华为云开发者联盟

深度学习 模型 标签 数据不平衡 DIR

产品策略闭环是个什么环?

万事ONES

项目管理 研发管理 ONES 产品策略

助力碳中和,EMQ与SAP共同构建绿色IoT解决方案

EMQ映云科技

开源 5G 碳中和 SAP 碳达峰

应对全场景AI框架部署挑战,MindSpore“四招”让你躺平

华为云开发者联盟

深度学习 AI mindspore 算子 ai框架

Java字符串池、常量池、intern的爱恨纠葛

叫我阿柒啊

Java 常量池 intern 字符串常量池

ONES CTO 冯斌 | 大型团队敏捷项目管理实践与思考

万事ONES

项目管理 研发管理 团队协作 ONES 研发工具

跨域背后的故事(一)-----同源策略

卢卡多多

浏览器 同源策略 6月日更

【Flutter 专题】107 图解自定义 ACEPageMenu 滑动菜单 (二)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 6月日更

Python——列表元素的增删改

在即

6月日更

WorkPlus私有化「数智融合」移动平台

BeeWorks

为什么聪明的程序员会写出糟糕的代码

实力程序员

和12岁小同志搞创客开发:拿到一款控制器,要怎么分析?

不脱发的程序猿

DIY 创客开发 怎么分析控制器?

react源码解析11.生命周期调用顺序

全栈潇晨

react.js

技术实践丨体验量子神经网络在自然语言处理中的应用

华为云开发者联盟

自然语言处理 量子 量子神经网络 量子模拟

Dokcer Compose部署Nebula Graph配置文件

阿呆

配置信息

云小课 | 华为云KYON之私网NAT网关

华为云开发者联盟

网关 华为云 KYON企业级云网络 私网NAT网关 重叠组网

和12岁小同志搞创客开发:如何选择合适的控制器?

不脱发的程序猿

DIY 创客开发 如何选择合适的控制器?

缓存与数据库的双写一致性

leonsh

MySQL redis 缓存

技术干货 | 如何实现对动态PPT的云端录制?

ZEGO即构

音视频 WebRTC RTC 即构 动态PPT录制

GrowingIO 增长平台产研项目管理实践

GrowingIO技术专栏

项目管理 程序员 Jira growingio

可视化及时把控营运状况,助力管理效率提升80%

一只数据鲸鱼

数据可视化 智慧城市 智慧园区 三维可视化 智慧楼宇

只记得文件类型如何用EasyRecovery实现恢复?

淋雨

数据恢复 EasyRecovery 文件恢复 照片恢复

项目管理100问 | 研发团队如何实现无缝协作

万事ONES

项目管理 ONES Project 研发团队

机器学习入门:多变量线性回归

华为云开发者联盟

机器学习 多变量线性回归

从单体系统到微服务

escray

学习 极客时间 朱赟的技术管理课 6月日更

联想积极参与CSMM标准制定和推广,推进中国软件产业高质量发展

科技热闻

Java 并发编程—— Executors 分析应用

Antway

6月日更

WorkPlus Lite 企业级移动平台

BeeWorks

我不服!这开源项目居然才888个星!?

why技术

Java

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