ReactJs 的各个版本生命周期、API变化 汇总(一、V16.0.0)
2021-06-22 13:07
标签:hand depend react text 性能 这一 tde master lock 目录 由于 React 的版本更新频繁,各类的新特性也是让人眼花缭乱的,为了方便自己查询最新的以及过往的 各个 React 版本 api、生命周期函数。 这里就用 caniuse 的方式做一个 方便查询的小功能。 1-1、About 1-2、Component‘s presentation (展现形式) The simplest way to define a component is to write a JavaScript function: You can also use an ES6 class to define a component: 上面的二种写法,目前来看是 任何都 React 版本,关于 Lifecycle 我们都可以找到对应的几个状态,来进行不同的 api 的差异的对比。这样也是方便,我们进行记忆的。 错误边界是响应组件,这些组件捕捉子组件树中的任何位置的JavaScript错误,记录这些错误,并显示一个回退UI,而不是崩溃的组件树。错误边界在呈现、生命周期方法和下面整个树的构造函数中捕获错误。 如果类组件定义了这个生命周期方法,它就会成为一个错误边界。在其中调用setState()允许您在下面的树中捕获未处理的JavaScript错误并显示回退UI。只使用错误边界从意外异常中恢复;不要试图用它们来控制流程。 可能就会有同学问了,为啥 第二部分的内容不讲了? ReactJs 的各个版本生命周期、API变化 汇总 ReactJs 的各个版本生命周期、API变化 汇总(一、V16.0.0) 标签:hand depend react text 性能 这一 tde master lock 原文地址:https://www.cnblogs.com/erbingbing/p/10211495.html
那么要实现这个小功能之前,我们必须要对 React 的各种版本进行仔细的解读。
最快捷的方式就是 直接 通过官方文档来获取最真实的信息。
一、React 各个版本之间的纵向对比
React 版本 ? 各个阶段 API
Mounting(绑定)
Updating(数据更新)
V 16.0.0
constructor()
componentWillMount()
render()
componentDidMount()componentWillReceiveProps()
shouldComponentUpdate()
componentWillUpdate()
render()
componentDidUpdate()
V 16.3.2
constructor()
static getDerivedStateFromProps()
componentWillMount() / UNSAFE_componentWillMount()
render()
componentDidMount()componentWillReceiveProps() / UNSAFE_componentWillReceiveProps()
static getDerivedStateFromProps()
shouldComponentUpdate()
componentWillUpdate() /UNSAFE_componentWillUpdate()
render()
getSnapshotBeforeUpdate()
componentDidUpdate()
V 16.5.2
constructor()
static getDerivedStateFromProps()
render()
componentDidMount()static getDerivedStateFromProps()
shouldComponentUpdate()
render()
getSnapshotBeforeUpdate()
componentDidUpdate()
V 16.7.0(最新)
constructor()
static getDerivedStateFromProps()
render()
componentDidMount()static getDerivedStateFromProps()
shouldComponentUpdate()
render()
getSnapshotBeforeUpdate()
componentDidUpdate()二、React 的基础
1、Components and Props
Components
1、Components let you split the UI into independent, reusable pieces, and think about each piece in isolation
组件允许您将UI拆分为独立的、可重用的部分,并独立地考虑每个部分
2、Conceptually, components are like JavaScript functions. They accept arbitrary inputs (called “props”) and return React elements describing what should appear on the screen.
从概念上讲,组件类似于JavaScript函数。它们接受任意输入(称为“props”),并返回描述屏幕上应该出现的内容的React元素。
(最简单的方式)function Welcome(props) {
return
Hello, {props.name}
;
}
(你也可以使用 ES2015 中 类 的方式)class Welcome extends React.Component {
render() {
return
Hello, {this.props.name}
;
}
}
等价的
.
三、React V 16.0.0
官方文档传送门:
React V 16.0.0 官方文档1、 The Component Lifecycle ( v16.0.0 )
1-1 Mounting (绑定阶段)
constructor()
例如:
constructor(props) {
super(props);
this.state = {
color: props.initialColor
};
}
componentWillMount()
render()
以下类型:
React elements
、String and numbers
、 Portals
、null
当 render null、 false、ReactDOM.findDOMNode(this) 的时候会返回 null
componentDidMount()
1-2 Updating (数据更新阶段)
componentWillReceiveProps()
componentWillReceiveProps(nextProps)
shouldComponentUpdate()
shouldComponentUpdate(nextProps, nextState)
componentWillUpdate()
componentWillUpdate(nextProps, nextState)
componentDidUpdate()
componentDidUpdate(prevProps, prevState)
1-3 Unmounting (解除绑定阶段)
componentWillUnmount()
1-4 Error Handling (错误处理阶段)
componentDidCatch()
componentDidCatch(error, info)
2、 Other APIs
2-1 setState() (数据变更)
2-2 forceUpdate() (强制数据变更)
3、 Class Properties (类的属性)
3-1 defaultProps(默认的 props)
3-2 displayName(展示名称)
4、Instance Properties (实例属性)
4-1 props(父组件传递进来的数据)
4-2 state(本地组件的数据)
3、 回顾
答: 这真的没什么好讲的。
以上则是 React V16.0.0 的全部内容,欢迎大家一起讨论~后面还有 关于剩下版本的 apis 变化的介绍,
主要是以 为什么 react 开发组要 干掉这些 api 以及 新的 api 能解决什么问题为出发点。介绍 ReactJS 这些年的进化
帮助大家一起来走进这个框架。
GitHub
地址:(欢迎 star 、欢迎推荐 : )
文章标题:ReactJs 的各个版本生命周期、API变化 汇总(一、V16.0.0)
文章链接:http://soscw.com/index.php/essay/97392.html