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更新预告的更多相关文章

  1. React Native (0.57)开发环境搭建(注意:Node不要随便更新到最新版,更新完后莫名其妙的问题一大堆)

    搭建开发环境 一.安装依赖 必须安装的依赖有:Node.Watchman 和 React Native 命令行工具以及 Xcode. 1.首先安装 Homebrew 2.安装 Node, Watchm ...

  2. C# 语言历史版本特性(C# 1.0到C# 7.1汇总更新)

    历史版本C#作为微软2000年以后.NET平台开发的当家语言,发展至今具有17年的历史,语言本身具有丰富的特性,微软对其更新支持也十分支持.微软将C#提交给标准组织ECMA,C# 5.0目前是ECMA ...

  3. Fundebug前端JavaScript插件更新至1.2.0

    摘要: Fundebug的前端JavaScript错误监控插件更新至1.2.0:支持监控WebSocket连接错误:修复了监控unhandledrejection错误的BUG,即未用catch处理的P ...

  4. React Native升级方法——升级到最新版本0.59

    React Native最近有大动作,于2019年3月12日发布新版本0.59.主要有两点值得升级:支持React Hooks:升级了JavaScriptCore,使Android性能有大幅提升.据用 ...

  5. 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 ...

  6. Fundebug前端异常监控插件更新至 1.9.0,支持监控 HTTP 慢请求

    摘要: 1.9.0新增 httpTimeout 配置选项,支持监控 HTTP 慢请求,同时修复了记录的 HTTP 响应时间偏小的 BUG. Fundebug提供专业的前端异常监控服务,可以第一时间捕获 ...

  7. chrome浏览器更新到chrome 29.0.1547.76 m,多出一些蛋疼的功能来。

    更新到chrome 29.0.1547.76 m 的时候,莫名其妙多出一些蛋疼的功能来. 1.alert之类的弹出对话框样式变了,并且位置不是居中的,跑到了最上面去了,如下图. 要把这对话框改回原始状 ...

  8. Nessus更新到8.3.0

    Nessus更新到8.3.0 更新内容包括: (1)专业版的报告功能更为灵活,允许用户选择包含的信息. (2)提升Nessus Manager的性能. (3)允许扫描模版多次更新. (4)生成报告时, ...

  9. .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 ...

随机推荐

  1. HTML 三角符号

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. CF 675D——Tree Construction——————【二叉搜索树、STL】

    D. Tree Construction time limit per test 2 seconds memory limit per test 256 megabytes input standar ...

  3. SpringBoot | 第三十六章:集成多CacheManager

    前言 今天有网友咨询了一个问题:如何在一个工程中使用多种缓存进行差异化缓存,即实现多个cacheManager灵活切换.原来没有遇见这种场景,今天下班抽空试了下,以下就把如何实现的简单记录下. 一点知 ...

  4. ElasticSearch基础入门

    1.query查询表达式 Elasticsearch 提供一个丰富灵活的查询语言叫做 查询表达式 , 查询表达式(Query DSL)是一种非常灵活又富有表现力的 查询语言,它支持构建更加复杂和健壮的 ...

  5. Java中final修饰参数的作用

    在方法参数前面加final关键字就是为了防止数据在方法体中被修改. 主要分两种情况:第一,用final修饰基本数据类型:第二,用final修饰引用类型. 第一种情况,修饰基本类型(非引用类型).这时参 ...

  6. Firebird Case-Insensitive Searching 大小写不敏感查找

    Firebird 默认是大小写敏感,在检索的时候. 要想不敏感检索,两种方法: 1.where upper(name) = upper(:flt_name) 2.检索时指定字符集collation,例 ...

  7. C#项目””是针对”.NETFramework,Version=v4.5.2”但此计算机没有,需要修改为v4.5.1.

    每次下载别人的代码都会出现这样的问题,以为是没有安装.NETFramework,就下载安装了,但是每次安装都会出现已安装高版本的4.6(Win10自带),无需下次安装,但是每次VS中都会显示有问题,而 ...

  8. ssh登录实现

    工程目录 配置文件详解 Spring的applicationContext.xml文件 <span ><?xml version="1.0" encoding=& ...

  9. Html5本地存储+本地数据库+离线存储

    首先介绍什么叫存储: cache:通常把它叫做缓存,功能就是把从DB,或者磁盘拿出来的东西放在缓存里面,这样的话可以减少读取磁盘的IO. 磁盘文件:通常把一些图片或者一些视频都存放在磁盘上. 数据库: ...

  10. 爬虫之lxml - etree - xpath的使用

    # 解析原理: # - 获取页面源码数据 # - 实例化一个etree对象,并且将页面源码数据加载到该对象中 # - 调用该对象的xpath方法进行指定标签定位 # - xpath函数必须结合着xpa ...