BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

React 0.14候选版发布,添加包分割,Refs语法等新特性

| 作者 Sergio De Simone 关注 17 他的粉丝 ,译者 刘振涛 关注 23 他的粉丝 发布于 2015年9月18日. 估计阅读时间: 4 分钟 | QCon上海2018 关注大数据平台技术选型、搭建、系统迁移和优化的经验。

两个月以前,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 {fish};
};

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

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT