React v15.5.0更新说明 & v16.0.0更新预告
React今日发布了15.5.0版本,同时这也将是以15开头的最后一个版本,下一次发布,我们将迎来React 16.0.0
在15.5.0这一版本中,主要有以下两处改动:
独立React.PropTypes
在之前的版本之中,我们可以通过React.PropTypes这个API访问React内置的一些类型来检查props,在15.5.0版本中,这一API被独立成了一个新的包 prop-types
// 15.4 以前
import React from 'react';
class Component extends React.Component {
render() {
return <div>{this.props.text}</div>;
}
}
Component.propTypes = {
text: React.PropTypes.string.isRequired,
}
// 15.5 以后
import React from 'react';
import PropTypes from 'prop-types';
class Component extends React.Component {
render() {
return <div>{this.props.text}</div>;
}
}
Component.propTypes = {
text: PropTypes.string.isRequired,
};
即将废弃React.createClass
目前的版本中我们一共有三种声明组件的方式:
- React.createClass
- JavaScript Function
- ES6 Class
因为之前JS当中并没有类的概念,所以React在内部实现了一个createClass的方法,但现在ES6已经十分普及,对Class的支持已经比较完善,所以在之后的版本中,React会废弃createClass这一方法。
当然,如果使用ES6 Class来声明组件的话,之前的mixins就无法使用了,所以React还为createClass方法准备了一个独立的包 create-react-class
// 15.4 以前
var React = require('react');
var Component = React.createClass({
mixins: [MixinA],
render() {
return <Child />;
}
});
// 15.5 以后
var React = require('react');
var createReactClass = require('create-react-class');
var Component = createReactClass({
mixins: [MixinA],
render() {
return <Child />;
}
});
以上是两项最主要的改变,也是最影响我们已有代码库的改动。你仍然可以在15.5.0版本中使用这两个API,但是在控制台会看到输出的废弃警告,并且在接下来的16.0.0版本中,这两个API会被彻底移除。
不过同学们也不同担心,这次改动之后,将可以“无痛直升”16.0.0版本。
另外还有一些有关测试和附件的改动就不再赘述,想要了解的同学可以去阅读React今天发布的博客React v15.5.0
React 16
- ReactDOM将会正式启用Fiber算法,不过API并不会改变,所以使用体验,你可能只会感觉到React更快,渲染更流畅了。关于Fiber的详细介绍,可以看这一篇讨论如何理解 React Fiber 架构?
- React.createClass/PropTypes/React.createFactory/React.DOM.* 几个方法将会被移除分离到单独的包中。
其余的改动和开发计划可以在React 15.5 and 16 Umbrella · Issue #8854 · facebook/react查阅。
你也可以通过下面的命令提前体验react 16.0.0版本
npm install react@16.0.0-alpha.8
React 16 正式版本有望在今夏发布:

React v15.5.0更新说明 & v16.0.0更新预告的更多相关文章
- React Native (0.57)开发环境搭建(注意:Node不要随便更新到最新版,更新完后莫名其妙的问题一大堆)
搭建开发环境 一.安装依赖 必须安装的依赖有:Node.Watchman 和 React Native 命令行工具以及 Xcode. 1.首先安装 Homebrew 2.安装 Node, Watchm ...
- C# 语言历史版本特性(C# 1.0到C# 7.1汇总更新)
历史版本C#作为微软2000年以后.NET平台开发的当家语言,发展至今具有17年的历史,语言本身具有丰富的特性,微软对其更新支持也十分支持.微软将C#提交给标准组织ECMA,C# 5.0目前是ECMA ...
- Fundebug前端JavaScript插件更新至1.2.0
摘要: Fundebug的前端JavaScript错误监控插件更新至1.2.0:支持监控WebSocket连接错误:修复了监控unhandledrejection错误的BUG,即未用catch处理的P ...
- React Native升级方法——升级到最新版本0.59
React Native最近有大动作,于2019年3月12日发布新版本0.59.主要有两点值得升级:支持React Hooks:升级了JavaScriptCore,使Android性能有大幅提升.据用 ...
- C# 语言历史版本特性(C# 1.0到C# 7.1汇总更新) C#各版本新特性 C#版本和.NET版本以及VS版本的对应关系
C# 语言历史版本特性(C# 1.0到C# 7.1汇总更新) 2017年08月06日 11:53:13 阅读数:6705 历史版本 C#作为微软2000年以后.NET平台开发的当家语言,发展至今具有1 ...
- Fundebug前端异常监控插件更新至 1.9.0,支持监控 HTTP 慢请求
摘要: 1.9.0新增 httpTimeout 配置选项,支持监控 HTTP 慢请求,同时修复了记录的 HTTP 响应时间偏小的 BUG. Fundebug提供专业的前端异常监控服务,可以第一时间捕获 ...
- chrome浏览器更新到chrome 29.0.1547.76 m,多出一些蛋疼的功能来。
更新到chrome 29.0.1547.76 m 的时候,莫名其妙多出一些蛋疼的功能来. 1.alert之类的弹出对话框样式变了,并且位置不是居中的,跑到了最上面去了,如下图. 要把这对话框改回原始状 ...
- Nessus更新到8.3.0
Nessus更新到8.3.0 更新内容包括: (1)专业版的报告功能更为灵活,允许用户选择包含的信息. (2)提升Nessus Manager的性能. (3)允许扫描模版多次更新. (4)生成报告时, ...
- .NET CORE 实践(3)--Visual Studio 2015 Update 3更新之后DotNetCore.1.0.1-VS2015Tools.Preview2.0.2.exe无法正确安装
打开 https://www.microsoft.com/net/core#windows,点击 https://go.microsoft.com/fwlink/?LinkId=691129下载vs2 ...
随机推荐
- 游戏中的网络同步机制——Lockstep(帧同步)
本文来自: https://bindog.github.io/blog/2015/03/10/synchronization-in-multiplayer-networked-game-lockste ...
- 我java学习时的模样(二)
去掉自己浮躁的心 工作了三年,见识过高山,也见过低估,高山同大神一起共事,低估是几家特别烂的外包公司,现在有了另一种心境.已经开始重视自己,去掉当初浮躁的心. 毕业的一两年内,是人成长特别快的时期,也 ...
- Delphi下OpenGL2d绘图(02)-画点
一.前言 图形的绘制可以使用glBegin().glEnd()之间完成,绘制的框架代码可以使用 Delphi下OpenGL2d绘图(01)-初始化 中的代码.修改的部份为 Draw 函数的内容. 二. ...
- [转]如何在 .Net Framework 4.0 项目上使用 OData?
本文转自:http://www.cnblogs.com/fiozhao/p/3536469.html 最新的 Microsoft ASP.NET Web API 2.1 OData 5.1.0 已只能 ...
- datatable填装List代替for循环
public class DataToModelHelper<T> where T : new() { public static IList<T> ConvertToMode ...
- dbcp数据库连接池的java实现
1.准备 导入jar包 commons-dbcp-1.4.jar commons-pool-1.3.jar 数据库驱动包,如:mysql-connector-java-5.1.28-bin.jar 2 ...
- 设置固定ip后无法上公网
把电脑ip设置成固定ip后,发现其不能上公网,突然想到要设置DNS. 运行cmd程序,输入命令ipconfig /all查看此网络的DNS,设置固定ip 时添加此DNS地址即可.
- 2017年11月27日 C#MDI窗体创建&记事本打印&记事本查找、自动换行
MDI窗体第一个父窗体 把属性里的IsMdiContainer设置为true就可以了 父窗体连接子窗体 //创建一个新的类,用来连接别的窗体,并且别的窗体为唯一窗体 List<Form> ...
- 基于bootstrap的内容折叠功能
加入js及css支持: <link rel="stylesheet" href="css/bootstrap.min.css"/> <scri ...
- JavaScript中按键事件的e.keyCode || e.which || e.charCode
1.浏览器的按键事件 浏览器有3种按键事件——keydown,keypress和keyup,分别对应onkeydown.onkeypress和onkeyup3个事件句柄. 一个典型的按键会产生所有这三 ...