写点什么

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

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

关注

评论

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

Linux C/C++后台开发高级架构师进阶指南-剑指腾讯T9

C++后台开发

后台开发 后端开发 linux开发 Linux服务器开发 C/C++开发

参与openEuler社区不到1年,我成为了Maintainer……

openEuler

开源 成长 openEuler 开源社区 开发者说

画一手好的架构图是码农进阶的开始

阿里技术

经验分享 构架

PMP考试经验分享

索隆

项目管理 pmp 考试经验

EMAS Serverless到底有多便利?

hum建应用专家

云计算 Serverless emas

合作再升级!云原生加速器成员企业云霁科技获得阿里云产品生态集成认证

阿里巴巴中间件

阿里云 云原生 合作 阿里云云原生加速器

浅谈云上攻防系列——云IAM原理&风险以及最佳实践

腾讯安全云鼎实验室

安全攻防 云安全 安全研究

「望繁信科技」完成过亿元A+轮融资,全面加速流程智能产品建设

望繁信科技

技术团队管理者的三十六计

申屠鹏会

团队管理

OpenYurt 邀你共赴 2022 EdgeX 中国挑战赛!

阿里巴巴中间件

阿里云 云原生 openyurt 边缘容器

有关Java性能优化,这是我见过阿里大佬总结的最全的一份实战文档了

程序员小毕

Java 程序员 面试 程序人生 性能优化

字节跳动嵌入式数据分析最佳实践

字节跳动数据平台

字节跳动 数据分析 BI 嵌入式分析 数据看板

满足你对 Api 的所有幻想

Liam

Postman API API接口管理 开放api API接口工具

从程序员到架构师,阿里巴巴2022全新出品Java程序员“成长笔记”满足了我的所有幻想

Java全栈架构师

Java 程序员 面试 后端 架构师

多线程+JVM+设计模式+数据库,阿里巴巴Java性能优化全解实战笔记真香

Java永远的神

Java 数据库 程序员 面试 多线程

大专的我狂刷29天“阿里内部面试笔记”最终直接斩获十七个Offer

收到请回复

Java 程序员 阿里 面试八股文 Java面试八股文

如何编写有效的常见问题解答页面?

Geek_da0866

2022上半年PMP考试通过率得多低,才能换来一次免费补考机会

索隆

罗技产品究竟能不能带来便捷感

Amazing_eve

#开源

秒验丨Android客户端集成指南

MobTech袤博科技

android Android Studio Gradle

渲染与云渲染——渲染行业的新趋势

Finovy Cloud

云渲染 GPU算力

将使用回调函数作为参数的函数改造为返回 Promise 的一个具体例子

汪子熙

JavaScript web开发 Promise 异步编程 8月月更

本周四晚19:00知识赋能第七期第2课丨OpenHarmony WiFi扫描仪UX设计

OpenHarmony开发者

Open Harmony

如何区分透明LED显示屏种类及应用领域

Dylan

LED显示屏 led显示屏厂家

如何开发一款基于 vite+vue3 的在线表格系统(下)

葡萄城技术团队

Vue 前端 vite

GitHub破百万访问的阿里神作:并发实现原理JDK源码笔记

冉然学Java

Java 编程 jdk 源码刨析 JDK 1.5

架构设计文档模板

maybe

程序员面试太卷?我选择背这份阿里最新Java面试八股文(详解版)

Java面试那些事儿

Java 面试 Java 面试 java程序员 java 编程

泄露了,Alibaba697页的MySQL应用实战与性能调优手册,太强了

冉然学Java

Java MySQL 编程 性能优化 构架

Java架构岗9大性能优化经验总结,我不允许你不会

程序员小毕

Java 数据库 程序员 面试 程序人生

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